=
Matthew W. Martin, John Newcomb, Joseph J. Nunes, Christi=
na Boucher, Lilly Chai, Linda F. Epstein, Theodore Faust, Sylvia Flores,=
Paul Gallant, Anu Gore, Yan Gu, Faye Hsieh, Xin Huang, Joseph L. Kim, S=
cot Middleton, Kurt Morgenstern, Antonio Oliveira-dos-Santos, Vinod F. P=
atel, David Powers, Paul Rose, Yanyan Tudor, Susan M. Turci, Andrew A. W=
elcher, Debra Zack, Huilin Zhao, Li Zhu, Xiaotian Zhu, Chiara Ghiron, Mo=
nika Ermann, David Johnston and Carl-Gustaf Pierre Saluste
pp 1637&=
ndash;1648
Publication Date (Web): February 16, 200=
8 (Article)
DOI: 10.1021/jm701095m
addFigure('10.1021/jm701097z','/appl/liter=
atum/publisher/achs/journals/production/jmcmar/2008/jmcmar.2008.51.issue=
-6/jm701097z','jm-2007-01097z_0001.gif');=
Jean-Christophe Harmange, Matthew M. Weiss=
, Julie Germain, Anthony J. Polverino, George Borg, James Bready, Danlin=
Chen, Deborah Choquette, Angela Coxon, Tom DeMelfi, Lucian DiPietro, Ni=
cholas Doerr, Juan Estrada, Julie Flynn, Russell F. Graceffa, Shawn P. H=
arriman, Stephen Kaufman, Daniel S. La, Alexander Long, Matthew W. Marti=
n, Sesha Neervannan, Vinod F. Patel, Michele Potashman, Kelly Regal, Phi=
llip M. Roveto, Michael L. Schrag, Charlie Starnes, Andrew Tasker, Yohan=
nes Teffera, Ling Wang, Ryan D. White, Douglas A. Whittington and Roger =
Zanon
pp 1649–1667
Publication Date (Web): March 7, 2008 (Article)
DOI: 10.1021/jm701097z
Subscriber Access
Matthew M. Weiss, Jean-Christophe Harmange, Anth=
ony J. Polverino, David Bauer, Loren Berry, Virginia Berry, George Borg,=
James Bready, Danlin Chen, Deborah Choquette, Angela Coxon, Tom DeMelfi=
, Nicholas Doerr, Juan Estrada, Julie Flynn, Russell F. Graceffa, Shawn =
P. Harriman, Stephen Kaufman, Daniel S. La, Alexander Long, Sesha Neerva=
nnan, Vinod F. Patel, Michele Potashman, Kelly Regal, Phillip M. Roveto,=
Michael L. Schrag, Charlie Starnes, Andrew Tasker, Yohannes Teffera, Do=
uglas A. Whittington and Roger Zanon
pp 1668–1680
Publication Date (Web): March 7, 2008 =
(Article)
DOI: 10.1021/j=
m701098w
Subscriber Access
Erin F. DiMauro, John Newcomb,=
Joseph J. Nunes, Jean E. Bemis, Christina Boucher, Lilly Chai, Stuart C=
. Chaffee, Holly L. Deak, Linda F. Epstein, Ted Faust, Paul Gallant, Anu=
Gore, Yan Gu, Brad Henkle, Faye Hsieh, Xin Huang, Joseph L. Kim, Josie =
H. Lee, Matthew W. Martin, David C. McGowan, Daniela Metz, Deanna Mohn, =
Kurt A. Morgenstern, Antonio Oliveira-dos-Santos, Vinod F. Patel, David =
Powers, Paul E. Rose, Stephen Schneider, Susan A. Tomlinson, Yan-Yan Tud=
or, Susan M. Turci, Andrew A. Welcher, Huilin Zhao, Li Zhu and Xiaotian =
Zhu
pp 1681–1694
Publication Date (Web): March 6, 2008 (Article)
DOI: 10.1021/jm7010996
=
=
Subscriber Access
=
<=
h2>
Novel 2,3-Dihydro-1,4-Benzoxaz=
ines as Potent and Orally Bioavailable Inhibitors of Tumor-Driven Angiog=
enesis Daniel S. La, Julie Belzile=
, James V. Bready, Angela Coxon, Thomas DeMelfi, Nicholas Doerr, Juan Es=
trada, Julie C. Flynn, Shaun R. Flynn, Russell F. Graceffa, Shawn P. Har=
riman, Jay F. Larrow, Alexander M. Long, Matthew W. Martin, Michael J. M=
orrison, Vinod F. Patel, Philip M. Roveto, Ling Wang, Matthew M. Weiss, =
Douglas A. Whittington, Yohannes Teffera, Zhiyang Zhao, Anthony J. Polve=
rino and Jean-Christophe Harmange
pp 1695–1705
Pu=
blication Date (Web): February 27, 2008=
(Article)
DOI: 10.1021/=
jm701129j
Subscriber Access
Sanjeev Kumar, William P. Malachowski, James B. Du=
Hadaway, Judith M. LaLonde, Patrick J. Carroll, Daniel Jaller, Richard M=
etz, George C. Prendergast and Alexander J. Muller
pp 1706–1=
718
Publication Date (Web): March 5, 2008 (Article)
DOI: 10.1021/jm7014155
Subscriber Access=
div>
<=
script type=3D"text/javascript">addFigure('10.1021/jm701185v','/appl/lit=
eratum/publisher/achs/journals/production/jmcmar/2008/jmcmar.2008.51.iss=
ue-6/jm701185v','jm-2007-01185v_0001.gif','true');
Deborah H. Slee, Yongsheng Chen, X=
iaohu Zhang, Manisha Moorjani, Marion C. Lanier, Emily Lin, Jaimie K. Ru=
eter, John P. Williams, Sandra M. Lechner, Stacy Markison, Siobhan Malan=
y, Mark Santos, Raymond S. Gross, Kayvon Jalali, Yang Sai, Zhiyang Zuo, =
Chun Yang, Julio C. Castro-Palomino, María I. Crespo, Maria Prat, S=
ilvia Gual, José-Luis Díaz and John Saunders
pp 1719&ndas=
h;1729
Publication Date (Web): February 29, 2008 (Article)
D=
OI: 10.1021/jm701185v
Subscriber A=
ccess
=
div>
Yu-Ling Leu, Chien-Shu Chen, Yih-Jang Wu and Ji-Wang Ch=
ern
pp 1740–1746
Publication Date (Web): March 5, 2008 (Article)
DOI: 10.1021/jm701151c
=
=
Subscriber Access
=
<=
div class=3D"articleLinksIcons">
Subscriber A=
ccess
=
div>
=
Marie M. Ahlström and Ismael Zamora
pp 1755–1763
Publication Date (Web): March 1, 2008 (Article)
DOI: 10.1=
021/jm701121y
Subscriber Access
addFigure('10.1021/jm701159t','/appl/liter=
atum/publisher/achs/journals/production/jmcmar/2008/jmcmar.2008.51.issue=
-6/jm701159t','jm-2007-01159t_0006.gif');Barbara Cosimelli, Giovanni Greco, Marina Ehlardo, Ettore Nov=
ellino, Federico Da Settimo, Sabrina Taliani, Concettina La Motta, Marus=
ca Bellandi, Tiziano Tuccinardi, Adriano Martinelli, Osele Ciampi, Maria=
Letizia Trincavelli and Claudia Martini
pp 1764–1770
Publication Date (Web): February 13, 2008 (Article)
DOI: 1=
0.1021/jm701159t
<=
div class=3D"icons">
Subscriber Access
Jalmira Mulchande, Rita C. Guedes,=
Wing-Yin Tsang, Michael I. Page, Rui Moreira and Jim Iley
pp 1783&=
ndash;1790
Publication Date (Web): February 22, 200=
8 (Article)
DOI: 10.1021/jm701257h
<=
ul>
=
Full Text HTML Hi-Res PDF [724K] PDF w/ Links [=
251K] Subscriber=
Access
=
div>
addFigure('10.1021/jm701264d','/appl/litera=
tum/publisher/achs/journals/production/jmcmar/2008/jmcmar.2008.51.issue-=
6/jm701264d','jm-2007-01264d_0010.gif');<=
div class=3D"articleBoxMeta">
Olivier Payen, Siden Top, Anne=
Vessières, Emilie Brulé, Marie-Aude Plamont, Michael J. McGli=
nchey, Helge Müller-Bunz and Gérard Jaouen
pp 1791&ndash=
;1799
Publication Date (Web): February 28, 2008 (Article)
DO=
I: 10.1021/jm701264d
Subscriber Ac=
cess
=
div>Frédéric Schmitt, Padavattan Govindaswamy, Georg Süs=
s-Fink, Wee Han Ang, Paul J. Dyson, Lucienne Juillerat-Jeanneret and Bru=
no Therrien
pp 1811–1816
Publication Date (Web): =
February 26, 2008 (Article)
DOI: 10.1021/jm701382p
Subscriber Access
Eun Kyoung Ryu, Zhanhong Wu, Kai Chen, Lawrence H. Lazarus, Ewa, =
D. Marczak, Yusuke Sasaki, Akihiro Ambo, Severo Salvadori, Chuancheng Re=
n, Heng Zhao, Gianfranco Balboni and Xiaoyuan Chen
pp 1817–18=
23
Publication Date (Web): March 1, 2008 (Article)
DOI: 10.1021/jm7014765
addFigure('10.1021/jm701040v','/appl/literatu=
m/publisher/achs/journals/production/jmcmar/2008/jmcmar.2008.51.issue-6/=
jm701040v','jm-2007-01040v_0007.gif','true');addFigure('10.1021/jm701040v','/appl/liter=
atum/publisher/achs/journals/production/jmcmar/2008/jmcmar.2008.51.issue=
-6/jm701040v','jm-2007-01040v_0004.gif');Brian E. Kane, Christopher R. M=
cCurdy and David M. Ferguson
pp 1824–1830
Publica=
tion Date (Web): February 23, 2008 (Art=
icle)
DOI: 10.1021/jm701=
040v
=
Subscriber Access
=
Hiroyuki S=
ato, Antonio Macchiarulo, Charles Thomas, Antimo Gioiello, Mizuho Une, A=
lan F. Hofmann, Régis Saladin, Kristina Schoonjans, Roberto Pellicc=
iari and Johan Auwerx
pp 1831–1841
Publication Da=
te (Web): February 29, 2008 (Article)=
span>
Subscriber Access
Pavol Vitovič, Juha-Matti Alakoskela and Paavo K. J.=
Kinnunen
pp 1842–1848
Publication Date (Web): =
strong>March 5, 2008 (Article)
DOI: 10.1021/jm7013953
Subscriber Access
=
div>
Sub=
scriber Access
=
<=
h2>
Design, Synthesis, and SAR of =
New Pyrrole-Oxindole Progesterone Receptor Modulators Leading to 5-(7-Fl=
uoro-3,3-dimethyl-2-oxo-2,3-dihydro-1H -indol-5-yl)-1-methyl-1H=
-pyrrole-2-carbonitrile (WAY-255348) Andrew Fensome, William R. Adams, Andrea L. Adams, Tom J. Berrodi=
n, Jeff Cohen, Christine Huselton, Arthur Illenberger, Jeffrey C. Kern, =
Valerie A. Hudak, Michael A. Marella, Edward G. Melenski, Casey C. McCom=
as, Cheryl A. Mugford, Ov D. Slayden, Matthew Yudt, Zhiming Zhang, Puwen=
Zhang, Yuan Zhu, Richard C. Winneker and Jay E. Wrobel
pp 1861&nd=
ash;1873
Publication Date (Web): March 5, 2008 (Article)
DOI=
: 10.1021/jm701080t
Cheng Xue Qin, Xingqiang Chen, Richard A. Hughes, Spencer J. Willia=
ms and Owen L. Woodman
pp 1874–1884
Publication D=
ate (Web): February 29, 2008 (Article)<=
/span>
DOI: 10.1021/jm070352h=
div>
Subscriber Access
addFigure('10.1021/jm070824s','/appl/literatu=
m/publisher/achs/journals/production/jmcmar/2008/jmcmar.2008.51.issue-6/=
jm070824s','jm-2007-00824s_0009.gif');Kazuhiro Haraguchi, Hisashi Shimada, =
Hiromichi Tanaka, Takayuki Hamasaki, Masanori Baba, Elizabeth A. Gullen,=
Ginger E. Dutschman and Yung-Chi Cheng
pp 1885–1893
Publication Date (Web): February 27, 2008 (Article)
DOI: 10=
.1021/jm070824s
Subscriber Access
Loretta Lazzarato, Monica Donnola, Barbara Roland=
o, Elisabetta Marini, Clara Cena, Gabriella Coruzzi, Elena Guaita, Giuse=
ppina Morini, Roberta Fruttero, Alberto Gasco, Stefano Biondi and Ennio =
Ongini
pp 1894–1903
Publication Date (Web): February 23, 2008 (Article)
DOI: 10.1021/jm701104f
Sponsored Access
<=
div class=3D"figureTray-wrap">
Jennifer M. Frost, Michael J. Dart, K=
arin R. Tietje, Tiffany R. Garrison, George K. Grayson, Anthony V. Daza,=
Odile F. El-Kouhen, Loan N. Miller, Lanlan Li, Betty B. Yao, Gin C. Hsi=
eh, Madhavi Pai, Chang Z. Zhu, Prasant Chandran and Michael D. Meyerpp 1904–1912
Publication Date (Web): Februa=
ry 27, 2008 (Article)
DOI: 10.1021/jm7011613
<=
/div>
=
Subscriber Access
Senait Ghirmai, Marc R. Azar, Wilma E. Polgar, Ilo=
na Berzetei-Gurske and John R. Cashman
pp 1913–1924
Publication Date (Web): February 26, 2008 (Article)
DOI: 10.=
1021/jm701060e
Subscriber Access
<=
div class=3D"articleBoxMeta">
Masashi Imanishi, Yasuyo Tomishima, Shinji Itou, Hitoshi Hamashima, =
Yutaka Nakajima, Kenichi Washizuka, Minoru Sakurai, Shigeo Matsui, Emiko=
Imamura, Koji Ueshima, Takao Yamamoto, Nobuhiro Yamamoto, Hirofumi Ishi=
kawa, Keiko Nakano, Naoko Unami, Kaori Hamada, Yasuhiro Matsumura, Fujik=
o Takamura and Kouji Hattori
pp 1925–1944
Publica=
tion Date (Web): February 29, 2008 (Art=
icle)
DOI: 10.1021/jm701=
324c
Subscriber Access
Brendan L. Wilkinson=
, Alessio Innocenti, Daniela Vullo, Claudiu T. Supuran and Sally-Ann Pou=
lsen
pp 1945–1953
Publication Date (Web): February 29, 2008 (Article)
DOI: 10.1021/jm701426t
Subscriber Access
addFigure('10.1021/jm701179m','/appl/literatu=
m/publisher/achs/journals/production/jmcmar/2008/jmcmar.2008.51.issue-6/=
jm701179m','jm-2007-01179m_0004.gif');Ana M=
. Sanz, Fernando Gómez-Contreras, Pilar Navarro, Manuel Sánche=
z-Moreno, Samira Boutaleb-Charki, Jose Campuzano, Mercedes Pardo, Antoni=
o Osuna, Carmen Cano, María J. R. Yunta and Lucrecia Campayo
p=
p 1962–1966
Publication Date (Web): February =
23, 2008 (Brief Article)
DOI: 10.1021/jm701179m
=
=
Subscriber Access
Koushik Mukherjee, Jayanta Bha=
ttacharyya, Joyeeta Sen, Ramakrishna Sistla and Arabinda Chaudhuri
=
pp 1967–1971
Publication Date (Web): March 5,=
2008 (Brief Article)
DOI: 10.1021/jm070879u
<=
/div>
=
Subscriber Access
Albert C. Pierce, Marc Jacobs and Cameron Stuver-Moody<=
/div>pp 1972–1975
Publication Date (Web): Feb=
ruary 22, 2008 (Brief Article)
DOI: 10.1021/jm701248t
Subscriber Access
Zhen-wei Cai, Yongzheng Zhang, Robert M. Borzil=
leri, Ligang Qian, Stephanie Barbosa, Donna Wei, Xiaoping Zheng, Lawrenc=
e Wu, Junying Fan, Zhongping Shi, Barri S. Wautlet, Steve Mortillo, Robe=
rt Jeyaseelan, , Daniel W. Kukral, Amrita Kamath, Punit Marathe, Celia D=
’Arienzo, George Derbin, Joel C. Barrish, Jeffrey A. Robl, John T.=
Hunt, Louis J. Lombardo, Joseph Fargnoli and Rajeev S. Bhide
pp 19=
76–1980
Publication Date (Web): February 21, =
2008 (Brief Article)
DOI: 10.1021/jm7013309
=
div>
=
Subscriber Access
=
=
=
=
=
=
=
=
=
=
Search By Citation
=
To jump to an article, select a journal and fill =
in volume and article's first page or specify the DOI of the article=
in the DOI box, and then click "Go". =
div>
Stay Current
Get your research ASAP.
=
=
=
=
MAGAZINE
COMMUNITIES
BOOKS
DIRECTORIES & DATABASES
=
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=style.css
Content-Type: text/css; charset=UTF-8; name=style.css
Content-Location: http://pubs.acs.org/templates/jsp/style.css
Content-Transfer-Encoding: 8bit
/*
for XSL debugging
*/
.xslDebugTemplate {
color: #999999;
font-size: 10px;
font-family: sans-serif;
padding-left: 2px;
}
.xslDebugNodePath {
color: #ff0000;
font-size: 10px;
font-family: sans-serif;
padding-left: 2px;
}
.xslDebugImport {
color: #007f00;
font-size: 10px;
font-family: sans-serif;
padding-left: 2px;
}
/* this is hack for
, try to be W3C valid and still compatible with older browsers
in modern browser is ZERO WIDTH SPACE = invisible by it self
in older browsers we need occupy as little space as possible,
cannot use display: none because most browsers will ignore the and won't wrap
*/
.wbr {
font-family: "Lucida Sans Unicode", "Arial Unicode MS", sans-serif;
font-size: 2pt;
color: #fff;
white-space: normal;
letter-spacing: 0;
word-spacing: 0;
word-wrap: break-word; /* IE only */
}
.noWrap {
white-space: nowrap;
}
/*
For multi-level ToC headings
*/
.tocHeading .subj-group {
display: block;
font-size: 90%;
}
/* boxed-text was originally rendered as blockquote */
div.boxed-text-, div.boxed-text-anchor, div.boxed-text-float {
margin-left: 3em;
}
div.boxed-text-margin {
/* no rule */
}
.refnumber {
text-align: left;
vertical-align: top;
}
.references .note p {
padding: 0em;
margin: 0em;
}
/* TOC */
.articleEntry {
margin-bottom: 1em;
}
/* OASIS table model, order of rules is important for correct overriding */
/* by default table cells will have borders, to disable border colsep/rowsep should be set to "0" */
.NLM_table-wrap td, .NLM_table-wrap th {
border-right: 1px solid black;
border-bottom: 1px solid black;
}
.NLM_table-wrap-foot p {
margin: 0;
}
.NLM_table-wrap table {
border: 1px solid black;
border-spacing: 0px;
border-collapse: collapse;
width: 95%;
}
.NLM_table-wrap table.frame_none {
border: none;
}
.NLM_table-wrap table.frame_left {
border: none;
border-left: 1px solid black;
}
.NLM_table-wrap table.frame_right {
border: none;
border-right: 1px solid black;
}
.NLM_table-wrap table.frame_top {
border: none;
border-top: 1px solid black;
}
.NLM_table-wrap table.frame_bottom {
border: none;
border-bottom: 1px solid black;
}
.NLM_table-wrap table.frame_sides {
border: none;
border-left: 1px solid black;
border-right: 1px solid black;
}
.NLM_table-wrap table.frame_topbot {
border: none;
border-top: 1px solid black;
border-bottom: 1px solid black;
}
table.rowsep0 td, table.rowsep0 th {
border-bottom: none;
}
table.rowsep1 td, table.rowsep1 th {
border-bottom: 1px solid black;
}
table.rowsep2 td, table.rowsep2 th {
border-bottom: 3px double black;
}
col.rowsep0, tr.rowsep0 td, tr.rowsep0 th {
border-bottom: none;
}
col.rowsep1, tr.rowsep1 td, tr.rowsep1 th {
border-bottom: 1px solid black;
}
col.rowsep2, tr.rowsep2 td, tr.rowsep2 th {
border-bottom: 3px double black;
}
tr th.rowsep0, tr td.rowsep0 {
border-bottom: none;
}
tr th.rowsep1, tr td.rowsep1 {
border-bottom: 1px solid black;
}
tr th.rowsep2, tr td.rowsep2 {
border-bottom: 3px double black;
}
table.colsep0 td, table.colsep0 th {
border-right: none;
}
table.colsep1 td, table.colsep1 th {
border-right: 1px solid black;
}
table.colsep2 td, table.colsep2 th {
border-right: 3px double black;
}
col.colsep0, tr.colsep0 td, tr.colsep0 th {
border-right: none;
}
col.colsep1, tr.colsep1 td, tr.colsep1 th {
border-right: 1px solid black;
}
col.colsep2, tr.colsep2 td, tr.colsep2 th {
border-right: 3px double black;
}
tr th.colsep0, tr td.colsep0 {
border-right: none;
}
tr th.colsep1, tr td.colsep1 {
border-right: 1px solid black;
}
tr th.colsep2, tr td.colsep2 {
border-right: 3px double black;
}
/* last element takes border from the table, have none on its own */
.NLM_table-wrap table tr.last td {
border-bottom: none;
}
.NLM_table-wrap table tr td.last, .NLM_table-wrap table tr th.last {
border-right: none;
}
.NLM_table-wrap .align_right {
text-align: right;
}
.NLM_table-wrap .align_left {
text-align: left;
}
.NLM_def-list {
margin: 1em 0;
}
.NLM_def-list .NLM_title, .NLM_def-list .NLM_term-head, .NLM_def-list .NLM_def-head, .NLM_def-list .NLM_term {
font-weight: bold;
vertical-align: top;
}
.NLM_def-list .NLM_def {
vertical-align: top;
}
/* "list tables" in context of real tables */
.NLM_table-wrap table tr td table.listgroup, .NLM_table-wrap table tr td table.listgroup td {
border: none;
width: auto;
text-align: left;
}
/* NLM title and inlinehead (heading[@format='inline']), for historic reason without NLM_ prefix */
.title1, .title2, .title3, .title4, .title5, .inlinehead1, .inlinehead2, .inlinehead3, .inlinehead4, .inlinehead5 {
font-weight: bold;
}
.searchNone0, .searchNone1, .searchNone2, .searchNone3, .searchNone4,
.searchNone5, .searchNone6, .searchNone7, .searchNone8, .searchNone9 {
color: inherit;
background-color: inherit;
font-weight: inherit;
}
.searchTerm0 {
color: black;
background-color: #ffff66;
font-weight: bold;
}
.searchTerm1 {
color: black;
background-color: #a0ffff;
font-weight: bold;
}
.searchTerm2 {
color: black;
background-color: #99ff99;
font-weight: bold;
}
.searchTerm3 {
color: black;
background-color: #ff9999;
font-weight: bold;
}
.searchTerm4 {
color: black;
background-color: #ff66ff;
font-weight: bold;
}
.searchTerm5 {
color: white;
background-color: #880000;
font-weight: bold;
}
.searchTerm6 {
color: white;
background-color: #00aa00;
font-weight: bold;
}
.searchTerm7 {
color: white;
background-color: #886800;
font-weight: bold;
}
.searchTerm8 {
color: white;
background-color: #004699;
font-weight: bold;
}
.searchTerm9 {
color: white;
background-color: #990099;
font-weight: bold;
}
.citation_source-book, .citation_source-journal {
font-style: italic;
}
.dash {
font-size: 13px;
}
.quote {
margin: 1em 0em 1em 5em;
display: block;
}
/* content is indexable */
.index {
}
/* entity images:
A: static entity image from fs
B: dynamic baseline
C: dynamic bottom
D: static text-bottom
*/
.entityA {
}
.entityB {
border: 0px;
vertical-align: baseline;
}
.entityC {
border: 0px;
vertical-align: bottom;
}
.entityD {
border: 0px;
vertical-align: text-bottom;
}
.toc_subarticle_style {
font-size: 11px;
font-family: Arial, Helvetica, sans-serif;
}
.toc_subarticle_authors_style {
font-size: 10px;
font-family: Arial, Helvetica, sans-serif;
}
.toc_subarticle_title_style {
font-size: 11px;
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
}
.fromGoogle {
border-style: solid;
border-color: red;
border-width: 2px 0pt;
margin: 12px 0pt;
padding: 2px 0pt;
line-height: 20px;
font-size: 12px;
}
.lilabel {
}
.smallcaps {
font-variant: small-caps;
}
.strike {
text-decoration: line-through;
}
.NLM_disp-formula {
display: block;
}
a.roDisabled {
color: GrayText;
}
.articleEntry .firstCell {
text-align: right;
vertical-align: top;
width: 18px;
padding-top: 0;
}
div.appendix span.title5 {
display: block;
}
.sectionHeading{
background-color:#e1e1e1;
}
.sectionHeading th{
font-size: larger;
}
.artAuthors .NLM_bio {
font-weight: normal;
}
.multiIssueToc .issueTitle {
font-weight: bold;
}
.monospace {
font-family: monospace;
}
table.formula {
margin: 1em 0;
clear: both;
}
.NLM_list-list_type-simple {
list-style: none;
display: block;
}
.IN_LIST-freeText, .IN_LIST-label, .IN_LIST-title {
list-style: none;
display: inline;
margin: 0;
padding: 0
}
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=style.css
Content-Type: text/css; charset=UTF-8; name=style.css
Content-Location: http://pubs.acs.org/templates/jsp/_style2/style.css
Content-Transfer-Encoding: 8bit
body, .bodyLayout {
margin: 0px;
padding: 0px;
border: 0px;
border-spacing: 0px;
font-family: Arial, Helvetica, sans-serif;
font-size: 11pt;
}
td {
font-family: Arial, Helvetica, sans-serif;
font-size: 11pt;
}
.leftRegion, .centerRegion, .rightRegion {
margin: 0px;
padding: 0px;
border: 0px;
}
.logo {
padding: 14px 0px;
text-align: center;
}
.logo_bottom {
padding-top: 20px;
padding-bottom: 20px;
text-align: center;
}
.welcome_user_text {
font-size: x-small;
font-weight: bold;
padding: 1em;
border-bottom: 1px solid #444;
color: #444;
}
.pub_search_box {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: x-small;
font-weight: bold;
padding: 1em;
margin-bottom: 1em;
border-bottom: 1px solid #444;
color: #444;
}
.pub_search_link {
font-size: 10pt;
font-weight: bold;
margin-bottom: 5px;
margin-top: 5px;
}
.menuXsubMenuDivider {
text-align: center;
}
#hide { display:none }
.art_title, .arttitle, .searchResultTitle {
font-weight: bold;
}
.art_author {
color: gray;
}
.art_meta {
color: gray;
}
.error {
color: red;
}
.citedByEntry {
margin-bottom: 0.5em;
}
.citedBySection {
margin-bottom: 2em;
}
.bullet {
vertical-align: top;
}
.tocHeading .subj-group {
display: block;
font-size: 90%;
}
tr.resultItemNav {
}
a img {
border-width: 0
}
td.savedSearch {
}
.currencySymbol {
font-weight: bold;
}
#showMailPage label {
font-weight: bold;
}
#showMailPage label.checkBox {
font-weight: normal;
}
div.p {
margin: 1em 0;
}
#CreditCardDialog .required {
color: #f00;
}
#CreditCardDialog label {
margin: 1em 0;
text-align: left;
}
.formHeading {
font-weight: bold;
}
div.federation {
margin-top:15px;
font-size:1.1em;
font-weight:bold;
}
.logoImg{
width:165px;
height:108px;
border:0;
}
table.offersOption {
width:100%;
padding:0 2em;
}
.offersOption td{
padding-bottom:1em;
}
.offersOption li{
list-style:none;
}
.offersOption tr.buttons{
text-align:right;
}
.deliveryFormat li{
list-style:none;
display:inline;
}
.ecommOffers {
font-weight: bold;
}
.addressLink {
cursor: pointer;
color: blue;
}
.federation select {
width: 200px;
}
.federation label {
margin-top: 10px;
}
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=atypon-main.css
Content-Type: text/css; charset=UTF-8; name=atypon-main.css
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/css/atypon-main.css
Content-Transfer-Encoding: 8bit
/* === Redefined Tags === */
body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
font: 100% "Trebuchet MS", Arial, Helvetica, sans-serif;
line-height: 1.125em;
color: #000;
text-align: center;
background: #fff url(/templates/jsp/_style2/_achs/images/body-bg.gif) repeat-x;
}
a {
color: #369;
}
a:visited {
color: #369;
}
a:hover {
text-decoration: none;
}
img {
border: 0;
}
p {
margin: 0 0 1em;
padding: 0;
}
form {
margin: 0;
padding: 0;
}
h1 {
margin: 0 0 .5em 0;
padding: 0;
font: bold 1.3em "Trebuchet MS", Arial, Helvetica, sans-serif;
color: #2d5073;
}
h2 {
margin: 0;
padding: 0 0 5px;
font: bold 1em Arial, Helvetica, sans-serif;
color: #304e96;
}
h3 {
margin: 0;
padding: 0;
font: bold .875em "Trebuchet MS", Arial, Helvetica, sans-serif;
color: #304e96;
}
h4 {
margin: 0;
padding: 0 0 3px;
font: bold .95em "Trebuchet MS", Arial, Helvetica, sans-serif;
}
h5 {
margin: 0;
padding: 0 0 3px;
font: bold .875em "Trebuchet MS", Arial, Helvetica, sans-serif;
}
h6 {
margin: 0;
padding: 0 0 3px;
font: bold .875em "Trebuchet MS", Arial, Helvetica, sans-serif;
color: #444;
}
h1, h2, h3, h4, h5, h6 {
line-height: 1.4em;
}
sup, sub {
vertical-align: 0.4em;
font-size: .8em;
}
sub {
vertical-align: -0.4em;
}
hr {
clear: both;
display: block;
height: 1px;
margin: 2px 0 10px;
background: #bbc5df;
border: 0;
}
table {
background: #fff;
}
blockquote {
font: .8em Arial, Helvetica, sans-serif;
}
/* === MAIN STRUCTURE === */
#container {
position: relative;
display: block;
width: 1000px;
height: 100%;
margin: 0 auto;
padding: 0;
text-align: left;
}
#header {
position: relative;
display: block;
width: 1000px;
z-index: 400; /* for Explorer */
}
#banner-bg {
background: #1e73b3;
width: 100%;
height: 20px;
overflow: hidden;
}
#global-banner {
margin: 0 auto;
padding: 0;
height: 20px;
text-align: center;
width: 1000px;
}
#global-banner ul {
float: right;
margin: 0;
padding: 0;
list-style: none;
text-align: center;
}
#global-banner ul li {
display: block;
float: left;
margin: 0;
padding: 0;
text-align: center;
border-left: 1px solid #ccc;
}
#global-banner li.endRt {
border-right: 1px solid #ccc;
}
#global-banner ul li a {
display: block;
width: 5em;
height: 20px;
margin: 0 0 10px 0;
padding: 1px 0 0 0;
font: .8em Verdana, Arial, Helvetica, sans-serif;
color: #fff;
text-decoration: none;
text-align: center;
}
#global-banner ul li a:hover, #global-banner ul li#active-gb a:hover {
background: #dfdfff;
color: #000;
}
#global-banner li#active-gb a {
background: #0f4d82;
color: #fff;
}
#pubsTop {
position: relative;
width: 1000px;
height: 65px;
margin: 0;
}
#pubsLogo {
float: left;
width: 244px;
padding: 12px 0 0;
}
#pubsTopNav {
position: absolute;
top: 7px;
right: 7px;
float: right;
padding: 0;
text-align: right;
color: #fff;
}
#pubsTopNav a:link, #pubsTopNav a:visited, #pubsTopNav a:hover {
font: .75em "Trebuchet MS", Arial, sans-serif;
margin: 0 7px;
text-decoration: none;
}
#pubsTopNav a:link, #pubsTopNav a:visited {
color: #fff;
}
#pubsTopNav a:hover {
text-decoration: underline;
}
#pubsTopNav #journalList {
display: block;
float: left;
margin: 1px .3em 0 0;
padding: 2px 6px;
background: #27689f;
color: #fff;
border: 1px solid #3c74a4;
}
#pubsTopNav #journalList:hover {
color: #fff;
background: #369;
text-decoration: none;
}
#journalTop {
display: block;
width: 1000px;
min-height: 80px;
background: transparent;
}
#journalLogo {
margin: 15px 0 7px;
}
#impactImage {
display: block;
width: 1000px;
height: 125px;
padding: 15px 0 7px;
background: transparent;
}
#nav-wrap-pubs, #nav-wrap-journal, #nav-wrap-arrc, #nav-wrap-lrc {
clear: both;
position: relative;
width: 1000px;
height: 30px;
margin: 0;
padding: 0;
background: transparent url(/templates/jsp/_style2/_achs/images/navbar-bg.gif) no-repeat;
z-index: 4000;
}
#profile-wrap {
position: absolute;
top: -28px;
right: 0;
height: 21px;
background: transparent url(/templates/jsp/_style2/_achs/images/profile.png) no-repeat left top;
}
#profile {
height: 100%;
margin: 0 0 0 3px;
z-index: 1000;
}
#profile div {
height: 100%;
padding: 1px 7px 0 4px;
font-size: .7em;
color: #fff;
white-space: nowrap;
}
#profile div span {
margin-right: 5px;
}
#profile div a {
margin: 0 2px;
color: #fff;
}
#profile div a img {
position: relative;
top: 1px;
}
body.journal #profile-wrap, body.arrc #profile-wrap, body.lrc #profile-wrap {
top: -25px;
right: 0;
height: 24px;
background: transparent;
}
body.journal #profile, body.arrc #profile, body.lrc #profile {
background: transparent;
}
body.journal #profile div, body.arrc #profile div, body.lrc #profile div {
color: #333;
}
body.journal #profile div a, body.arrc #profile div a, body.lrc #profile div a {
color: #369;
}
#search-wrap {
position: absolute;
top: 40px;
right: 15px;
display: block;
padding: 0;
background: url(/templates/jsp/_style2/_achs/images/searchbox-tl.png) no-repeat left top;
}
#search {
display: block;
padding: 6px 0 0;
background: url(/templates/jsp/_style2/_achs/images/searchbox-tr.png) no-repeat right top;
}
#searchJournal {
display: block;
margin: 0;
padding: 0 0 0 7px;
background: #fbf9b9;
}
#searchJournal * {
margin: 0;
padding: 0;
font-size: .75em;
font-family: Arial, Helvetica, sans-serif;
}
#searchJournal label, #searchJournal label cite {
font-size: 1em;
color: #09477a;
}
#searchJournal h4 {
margin: 0 0 5px;
padding: 0;
font: bold .9em Arial, Helvetica, sans-serif;
color: #09477a;
}
#advancedLink {
position: absolute;
top: 0;
right: 2px;
margin: 0;
font: 1em Arial, Helvetica, sans-serif;
text-align: right;
}
#advancedLink a {
display: block;
margin: 7px 9px 0 0;
}
#search #searchSub {
margin: 0 7px;
}
#search #searchCollection {
margin: 7px 0 0 2px;
padding: 0 7px 2px 0;
}
#searchCollection * {
line-height: normal;
vertical-align: middle;
}
#searchJournal #thisjrnl {
font-size: 1em;
}
#searchJournal #alljrnl {
margin: 0 0 0 15px;
font-size: 1em;
}
#searchFooter {
position: absolute;
bottom: -6px;
left: 6px;
right: 6px;
display: block;
height: 6px;
margin: 0;
background: #fbf9b9;
}
#searchBL {
position: absolute;
bottom: -6px;
left: 0;
width: 6px;
height: 6px;
background: transparent url(/templates/jsp/_style2/_achs/images/searchbox-bl.png) no-repeat bottom left;
}
#searchBR {
position: absolute;
bottom: -6px;
right: 0;
width: 6px;
height: 6px;
background: url(/templates/jsp/_style2/_achs/images/searchbox-br.png) no-repeat bottom right;
}
#cobranding {
position: absolute;
top: 0;
left: 0;
height: 18px;
margin: 2px 0 0;
vertical-align: middle;
font: 11px Verdana, Arial, Helvetica, sans-serif;
color: #fff;
z-index: 6000;
}
#alertSitewide, #alertJournals, #alertGroupAccess, #alertDiscontinued {
clear: both;
float: left;
width: 998px;
margin: 7px 0 0;
border: 1px solid #ccc;
background: #ffc;
}
#alertDiscontinued {
border: 1px solid #900;
color: #600;
}
#alertSitewide span, #alertJournals span, #alertGroupAccess span, #alertDiscontinued span {
display: block;
margin: 2px 7px;
font-size: .9em;
}
#mainBody {
clear: both;
float: left;
width: 1000px;
margin: 10px 0 20px;
padding: 0 0 7px;
background: #eef6fc url(/templates/jsp/_style2/_achs/images/topright.gif) right top no-repeat;
}
#content-wrap {
float: left;
width: 805px;
margin: 0 0 7px;
padding: 7px 0 0;
background: transparent url(/templates/jsp/_style2/_achs/images/topleft.gif) left top no-repeat;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#content {
float: left;
width: 798px;
margin: 0 0 0 5px;
padding: 0;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#contentFooter {
clear: left;
float: left;
width: 798px;
margin: 0 0 0 5px;
padding: 0;
background: #ffc;
}
#rightColumn {
clear: none;
float: right;
width: 182px;
margin: 7px 5px 0 0;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
.rtColBox {
clear: both;
display: block;
margin: 0 0 7px;
padding: 10px;
background: #fff;
border: 1px solid #b6b6e1;
font-size: .75em;
line-height: normal;
}
.rtColBox h2, .rtColBox h3 {
margin: 0 0 7px;
font-size: 1.1em;
line-height: normal;
background: transparent !important;
}
.rtColBox h4 {
margin: 10px 0 0;
padding: 0;
font-size: 1em;
}
#rightColumn a {
text-decoration: none;
}
#rightColumn a:hover {
text-decoration: underline;
}
#rightColumn ul, #sideCol .sideColBox ul {
margin: 0;
padding: 0;
}
#rightColumn ul li, #sideCol .sideColBox ul li {
margin: 0 0 3px 17px;
padding: 0;
list-style-image: url(/templates/jsp/_style2/_achs/images/bullet1-trans.gif);
font-size: 1em;
}
#rightColumn .blueBG ul li, #rightColumn .darkBlueBG ul li {
margin: 0 0 2px 17px;
padding: 0;
list-style-image: url(/templates/jsp/_style2/_achs/images/bullet1-white-trans.gif);
}
#rightColumn .blueBG a, #rightColumn .blueBG a:visited, #rightColumn .darkBlueBG a:visited {
color: #fff;
}
.rtColBox a img {
text-decoration: none;
}
.findIssue {
background: #2b578a;
}
.findCitation {
background: #6982ba;
}
.findIssue h3, .findCitation h3 {
color: #fff;
}
#issueJump, #citationJump {
display: block;
margin: 0;
padding: 0;
}
#issueJump .footer, #citationJump .footer {
position: relative;
height: 18px;
margin: 12px 0 0;
}
#issueJump .footer a {
position: relative;
top: 4px;
color: #fff;
text-decoration: underline;
}
#issueJump .footer a:hover {
text-decoration: none;
}
#issueJump div {
display: block;
height: 1.8em;
margin: 0 0 7px;
}
#issueJump select {
display: block;
width: 150px;
}
#rightColumn .rtColBox .formSubmit, body.search #citationJump .footer .formSubmit {
position: absolute;
top: 0;
right: 0;
display: block;
width: 25px;
height: 17px;
margin: 0;
background: url(/templates/jsp/_style2/_achs/images/go.png);
cursor: pointer;
}
#citationJump div {
margin: 0 0 7px;
}
#citationJump #or {
width: 162px;
height: 14px;
margin: 7px 0;
background: url(/templates/jsp/_style2/_achs/images/citFndOr.png) no-repeat;
}
#citationJump .info {
float: left;
width: 50px;
height: 18px;
background: url(/templates/jsp/_style2/_achs/images/info.png);
cursor: pointer;
}
#issueJump *, #citationJump * {
font-size: 12px;
}
#citationJump option {
width: 25em;
}
.blueBG {
background-color: #1e73b3;
}
.darkBlueBG {
background-color: #00497e;
}
.blueBG *, .darkBlueBG * {
color: #fff;
}
.blueBG #submit, .darkBlueBG #submit {
color: #000 !important;
}
.sciFinderLogin {
padding: 0;
}
.adSpace {
color: #999;
text-align: center;
padding-bottom: 5px;
}
.adSpace div {
margin: 0 0 3px;
}
.adSpace img {
margin: 0 0 3px;
border: 1px solid #ccc;
}
.adSpace .adInfo {
margin: 10px 0 0 !important;
}
#pageFooter-wrap {
clear: both;
float: left;
width: 100%;
margin: 0;
padding: 10px 0;
font: .7em "Trebuchet MS", Arial, Helvetica, sans-serif;
color: #fff;
background: #0f4d82;
text-align: left;
}
#pageFooter {
width: 1000px;
margin: 0 auto;
}
#btmCopyright {
float: left;
}
#pageFooterLinks {
float: right;
margin: 0;
}
#pageFooter a, pageFooter a:visited {
color: #fff;
text-decoration: none;
}
#pageFooter a:hover {
text-decoration: underline;
}
#pageFooterLinks a:link, #pageFooterLinks a:visited, #pageFooterLinks a:hover {
font: 1em "Trebuchet MS", Arial, sans-serif;
margin: 0 .7em 0 .3em;
}
.pageFooterPartners {
clear: right;
float: right;
width: 60%;
margin-top: 10px;
text-align: right;
}
.pageFooterPartners span, .pageFooterPartners img {
float: right;
margin: 0 0 0 10px;
}
/* === Pubs Home Page === */
#hpTopBox {
float: left;
width: 796px;
margin: 0 0 10px;
padding: 0 0 5px;
background: #fff;
border: 1px solid #b6b6e1;
}
#hpTopBox * {
line-height: 1.4em;
}
body.pubs #hpTopBox h1 {
width: 515px;
margin: 10px;
padding: 0;
font: bold 1em "Trebuchet MS", Arial, sans-serif;
color: #2d5073;
}
body.pubs #hpTopBox p {
width: 515px;
margin: 0 7px 7px 10px;
font-size: .8em;
}
#aboutSubBox {
float: right;
width: 250px;
margin: 7px;
background: #d8e3ed;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#hpTopBox #aboutSubBox p {
width: auto;
margin: 10px;
}
#hpTopBox #aboutSubBox div {
margin: 10px;
font-size: .8em;
}
#hpLeft {
float: left;
width: 432px;
background: #fff url(/templates/jsp/_style2/_achs/images/journals-bg.jpg) no-repeat;
border: 1px solid #b6b6e1;
}
#hpLeft h2 {
margin: 3px 3px 10px 3px;
padding: 4px 7px;
background: #d8e4ee url(/templates/jsp/_style2/_achs/images/h2-bg.gif) repeat-x;
line-height: normal;
}
#hpLeft h3 {
margin: 10px 0 0 10px;
font-size: 1em;
line-height: normal;
}
#journalListView {
margin: 0 10px;
font-size: .8em;
}
#journalListView div {
float: left;
width: auto;
margin: 0 7px 15px 0;
padding: 0;
}
#journalListView a {
display: block;
padding: 4px 7px;
font: 1em Verdana, Arial, Helvetica, sans-serif;
text-decoration: none;
}
#journalListView #azLink {
font-weight: bold;
background: #eee;
color: #000;
border: 1px solid #ccc;
}
#azView, #catView {
clear: left;
display: block;
}
#catView {
display: none;
}
#azView ul, #catView ul {
display: block;
margin: 0 10px 15px 10px;
padding: 0 !important;
}
#azView ul li, #catView ul li {
display: block;
margin: 0 0 2px;
padding: 0 !important;
list-style: none;
font-size: .8em;
}
#azView ul li div, #catView ul li div {
font-size: .9em;
margin: 0 0 0 15px;
}
#azView a {
text-decoration: none;
}
#azView a:hover {
text-decoration: underline;
}
#catView ul li {
font-weight: bold;
margin: 0 0 5px;
}
#catView ul li ul {
margin: 5px 10px 10px 30px;
padding: 0;
}
#catView ul li ul li {
display: list-item;
font-weight: normal;
font-size: 1em;
margin: 0 0 2px;
list-style-image: url(/templates/jsp/_style2/_achs/images/bullet1-trans.gif);
}
#catView ul li a {
color: #333;
text-decoration: none;
}
#catView ul li a:hover {
color: #900;
text-decoration: none;
}
#catView ul li ul li a {
color: #369;
}
#catView ul li ul li a:hover {
color: #369;
text-decoration: underline;
}
#azView .history, #catView .history {
display: inline;
position: relative;
top: 3px;
left: 3px;
margin: 0;
padding: 0;
}
#azView .history img, #catView .history img {
margin: 0;
padding: 0;
border: 0;
}
#azView .history ul, #catView .history ul {
margin: 4px 0 10px 30px;
padding: 0;
display: none;
}
#azView .history ul li, #catView .history ul li {
display: list-item;
margin: 0;
padding: 0;
list-style-image: url(/templates/jsp/_style2/_achs/images/bullet1-trans.gif);
font-size: 1em;
}
#azView .column, #catView .column {
margin: 0 10px 0 0;
}
#hpRight {
float: right;
width: 358px;
overflow: hidden;
}
#hpRight .hpBox {
margin: 0 0 7px;
padding: 0 0 10px 0;
border: 1px solid #b6b6e1;
background: #fff;
}
#hpRight .hpBox h2 {
display: block;
margin: 3px 3px 10px 3px;
padding: 4px 7px;
background: #d8e4ee url(/templates/jsp/_style2/_achs/images/h2-bg.gif) repeat-x;
line-height: normal;
}
.feedburnerFeedBlock ul {
clear: left;
padding: 0;
}
.feedburnerFeedBlock ul li {
margin: 10px 7px 0 0 !important;
padding: 0 !important;
background: transparent !important;
border: 0 !important;
list-style: none !important;
}
.feedburnerFeedBlock .headline {
font-weight: bold;
}
p.date {
margin: 0;
color: #555;
font-size: .9em !important;
}
.feedburnerFeedBlock div {
margin: 0 0 1em;
font-size: .9em !important;
}
.feedflare, #creditfooter {
display: none;
}
#hpRight .hpBox p, #hpRight .hpBox div {
font-size: .8em;
}
#hpRight .hpBox div div, #hpRight .hpBox div p {
font-size: 1em;
line-height: normal;
}
#textArea #sideCol p.feedTitle, #sideCol .sideColBox p.feedTitle {
font-size: 1.13em; font-weight: bold;
}
#textArea #sideCol p.feedTitle a:link, #textArea #sideCol p.feedTitle a:visited, #sideCol .sideColBox p.feedTitle a:link, #sideCol .sideColBox p.feedTitle a:visited {
color: #900;
text-decoration: none;
}
#textArea #sideCol p.feedTitle a:hover, #sideCol .sideColBox p.feedTitle a:hover {
color: #900;
text-decoration: underline;
}
.item {
clear: left;
margin: 0 7px 10px;
}
.item .flLeft {
margin-right: 10px;
margin-bottom: 10px;
}
.item h2 {
display: block;
margin: 3px 3px 10px 3px;
padding: 4px 7px;
background: #d8e4ee url(/templates/jsp/_style2/_achs/images/h2-bg.gif) repeat-x;
line-height: normal;
}
.item ul {
margin: 5px 0 1.4em;
padding: 0;
}
.item ul li {
margin: 0 0 4px 15px;
padding: 0;
list-style-image: url(/templates/jsp/_style2/_achs/images/bullet1-trans.gif);
line-height: normal;
}
.item h3 {
font: bold 1em "Trebuchet MS", Arial, Helvetica, sans-serif;
}
.item h3 a {
text-decoration: none;
}
.item h3 a:hover {
text-decoration: underline;
}
.item p {
font-size: .8em;
}
#hpRight h4 {
font: bold .9em Verdana, Arial, Helvetica, sans-serif;
margin: 0 0 10px;
padding: 0;
}
#hpRight #featuresList h4 {
margin: 0 0 15px;
}
#hpRight h5 {
margin: 0;
padding: 0;
font: normal .9em "Trebuchet MS", Arial, Helvetica, sans-serif;
color: #555;
}
#hpRight #newsList .link {
margin-top: -1em;
font-size: .875em;
line-height: normal;
}
#hpRight .nav {
display: block;
text-align: right;
margin: 15px 10px 0 0;
}
#hpRight .nav a {
font-size: .875em;
}
#newsList, #cenList, #featuresList {
margin: 0 0 0 10px;
}
#newsList img, #featuresList img {
float: left;
margin: 0 10px 0 0;
}
#newsList .item, #featuresList .item {
clear: left;
margin: 0 0 1em;
min-height: 88px;
}
#cenList img {
float: right;
margin: 5px 10px 10px;
}
#cenNewsBox div {
margin: 0 10px 10px;
}
.books .item {
margin: 0 0 7px 10px;
min-height: 88px;
}
.books img {
float: left;
margin: 0 10px 15px 0;
}
/* === Journal Home Page and 2ndary Pages === */
#highlightBox {
position: relative;
float: left;
width: 410px;
height: 255px;
margin: 5px 0 0 5px;
border: 1px solid #666;
overflow: hidden;
}
#highlightBox h2 {
display: block;
width: 396px;
height: 20px;
line-height: 20px;
margin: 0;
padding: 2px 7px 0 7px;
background: #333;
color: #fff !important;
font: 14px Verdana, Arial, Helvetica, sans-serif;
vertical-align: middle;
}
#highlightNav {
position: absolute;
bottom: -1px;
left: 0;
width: 410px;
height: 28px;
border-top: 1px solid #666;
background: #333;
color: #fff;
}
#highlightNav .prev, #highlightNav .next {
position: absolute;
top: 5px;
left: 311px;
display: block;
width: 25px;
height: 18px;
background: url(/templates/jsp/_style2/_achs/images/prevSlide.gif) 0 0;
text-align: right;
}
#highlightNav .next {
left: 343px;
background: url(/templates/jsp/_style2/_achs/images/nextSlide.gif) 0 0;
}
#highlightPlay, #highlightPause {
position: absolute;
bottom: 4px;
right: 0;
display: block;
width: 35px;
height: 18px;
background: url(/templates/jsp/_style2/_achs/images/highlightPlay.gif) 0 0;
}
#highlightPause {
background: url(/templates/jsp/_style2/_achs/images/highlightPause.gif) 0 0;
}
#highlightNav .prev:hover, #highlightNav .next:hover, #highlightPlay:hover, #highlightPause:hover {
background-position: 0 -18px;
}
ul#slideSelect {
float: left;
width: 320px;
height: 27px;
margin: 5px 7px 0 0;
padding: 0 35px 0 0;
line-height: 28px;
vertical-align: middle;
display: inline;
}
ul#slideSelect li {
float: left;
margin: 0 3px;
list-style: none;
display: inline;
}
ul#slideSelect li a {
float: left;
margin: 0;
padding: 2px 7px;
border: 1px solid #ccc;
text-align: center;
text-decoration: none;
color: #fff;
font: 10px Arial, Helvetica, sans-serif;
display: inline;
}
ul#slideSelect li a:hover {
background: #eee;
color: #000;
}
ul#slideSelect li.current a {
color: #f00;
border: 1px solid #f00;
}
#slides {
float: left;
width: 410px;
min-height: 206px;
margin: 0;
padding: 0;
}
#slides .slide {
min-height: 206px;
}
#slides a:hover {
text-decoration: none;
}
#slides .fullimg a {
color: #fff;
text-decoration: none;
}
#slides img.highlightImg {
width: 410px;
height: 210px;
border: 0;
}
#slides span.title {
position: absolute;
left: 0;
bottom: 27px;
display: block;
width: 400px;
margin: 0;
padding: 5px;
background: #000;
font: normal 13px "Trebuchet MS", Arial, Helvetica, sans-serif;
filter: alpha(opacity=80);
-moz-opacity: 0.8;
-khtml-opacity: 0.8;
opacity: 0.8;
}
#slides h3 {
margin: 10px 7px 3px;
padding: 0;
font-size: .9em;
}
#slides p {
margin: 0 7px 1em;
font-size: .8em;
}
#slides .flLeft {
margin-left: 7px;
}
#slides .flRight {
margin-right: 7px;
}
#aboutJournalBox {
position: relative;
float: right;
width: 358px;
min-height: 240px;
margin: 5px 7px 7px 0;
font-size: .75em;
text-align: left;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#aboutJournalBox .journalCover {
position: absolute;
top: 2.4em;
left: 0;
width: 125px;
padding: 0 0 5px;
background: #e6e6e6;
border: 1px solid #ccc;
text-align: center;
font-size: .9em;
}
#aboutJournalBox img {
margin: 5px auto;
border: 1px solid #b6b6e1;
}
#aboutJournalBox h2 {
margin: 0 10px 0 0;
font-size: 1.3em;
}
#aboutJournalBox p {
margin: 0 7px 0 140px;
}
#aboutJournalBox ul {
margin: 7px 0 0 140px;
padding: 0;
}
#aboutJournalBox ul li {
margin: 0 7px 3px 17px;
list-style-image: url(/templates/jsp/_style2/_achs/images/bullet1-trans.gif);
}
#aboutJournalBox ul li.noBullet {
margin: 0 0 7px;
list-style: none;
list-style-image: none;
color: #444;
font-weight: bold;
}
#copub {
margin: 7px 7px 0 140px;
padding: 5px 0;
border: 1px solid #aaa;
font-size: .875em;
}
#copub img {
float: left;
margin: 3px 5px 3px 3px;
border: 0;
}
#contentMain {
position: relative;
clear: left;
float: left;
width: 798px;
}
#fullPage {
width: 967px;
padding: 10px;
background: #fff;
border: 1px solid #ccc;
font-size: .875em;
}
#textArea {
width: 796px;
min-height: 45.35em;
margin: 0;
padding: 0;
background: #fff;
border: 1px solid #b6b6e1;
}
#textArea.fullPage {
width: 987px;
}
#textArea h1, #textArea h2, #textArea h3, #textArea h4, #textArea h5, #textArea h6, #textArea p, #textArea ul, #textArea ol, #InstitutionAdmin_Activation div {
margin-top: 4px;
margin-left: 10px;
margin-right: 10px;
}
#textArea h2 {
margin-top: 1.3em;
}
#textArea h2.subtitle {
margin-top: 0;
margin-bottom: .7em;
font-size: 1em;
color: #333;
}
#textArea p {
margin-top: 0;
font-size: .8em;
}
#textArea ul, #textArea ol {
padding-left: 40px;
}
#textArea li {
font-size: .8em;
}
#textArea li li {
font-size: 1em;
}
#textArea dl {
margin: 0 11px 11px;
font: normal .8em "Trebuchet MS", Arial, Helvetica, sans-serif;
}
#textArea dl dt {
margin: 15px 0 0;
font-weight: bold
}
#textArea dl dd {
margin: 0;
}
#articleArea {
float: left;
width: 608px;
margin: 0;
padding: 7px 0 0;
background: #fff;
border: 1px solid #b6b6e1;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#articleAreaHeader {
position: relative;
float: left;
width: 100%;
height: 29px;
margin: 0;
padding: 0;
background: url(/templates/jsp/_style2/_achs/images/articleView-tabs-bg.gif) no-repeat;
}
#articleAreaHeader ul {
float: left;
height: 25px;
margin: 4px 0 0;
padding: 0;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#articleAreaHeader ul li {
float: left;
width: auto;
height: 25px;
margin: 0;
padding: 0;
list-style: none;
}
#articleAreaHeader ul li a {
display: block;
width: 92px;
height: 25px;
background: transparent url(/templates/jsp/_style2/_achs/images/articleView-tabs.gif);
}
#articleAreaHeader ul li a span {
display: none;
}
#rssBox {
position: absolute;
top: 0;
right: 0;
}
#rssBox a {
display: block;
width: 92px;
height: 29px;
background: url(/templates/jsp/_style2/_achs/images/rssbox.gif);
}
/* === Initial States === */
#articleAreaHeader ul li #justAcceptedTab {
margin: 0 0 0 4px;
background-position: -4px -4px;
}
#articleAreaHeader ul li #justPublishedTab {
margin: 0 0 0 3px;
background-position: -99px -29px;
}
#articleAreaHeader ul li #currentIssueTab {
margin: 0 0 0 3px;
background-position: -194px -4px;
}#articleAreaHeader ul li #mostReadTab {
margin: 0 0 0 3px;
background-position: -289px -4px;
}
#articleAreaHeader ul li #mostCitedTab {
margin: 0 0 0 3px;
background-position: -384px -4px;
}
/* === Hover States === */
#articleAreaHeader ul li #justAcceptedTab:hover {
background-position: -4px -54px !important;
}
#articleAreaHeader ul li #justPublishedTab:hover {
background-position: -99px -54px !important;
}
#articleAreaHeader ul li #currentIssueTab:hover {
background-position: -194px -54px !important;
}
#articleAreaHeader ul li #mostReadTab:hover {
background-position: -289px -54px !important;
}
#articleAreaHeader ul li #mostCitedTab:hover {
background-position: -384px -54px !important;
}
#justAcceptedArticles, #justPublishedArticles, #currentIssueArticles, #mostReadArticles, #mostCitedArticles {
clear: left;
width: 609px;
margin: 0;
padding: 15px 0 0;
font-size: .875em;
}
#justAcceptedArticles, #currentIssueArticles, #mostReadArticles, #mostCitedArticles {
display: none;
}
#articleArea h2 {
margin: 0 3px;
padding: 4px 7px;
font-size: 1.15em;
}
#articleArea p {
margin: 0 10px 15px;
font-size: .85em;
line-height: normal;
}
.articleListHeader, .articleListFooter {
float: left;
width: 587px;
margin: 0 0 10px 11px;
font-size: .875em;
display: inline;
}
.articleListHeader label, .articleListFooter label {
margin: 0 15px 0 0;
}
.selectAll {
float: left;
}
.articleOptions {
float: left;
margin: 0 0 0 7px;
}
.articleOptions a {
float: left;
cursor: pointer;
}
.articleOptions a.viewAbs {
width: 85px;
height: 18px;
background: url(/templates/jsp/_style2/_achs/images/viewAbs.png);
}
.articleOptions a.downCitations {
width: 108px;
height: 18px;
background-image: url(/templates/jsp/_style2/_achs/images/downCit.png);
}
.articleOptions div.sciFinderOptions {
position: relative;
float: left;
margin-left: 1px;
z-index: 300; /* for Explorer */
}
.articleOptions .sciFinderOptions a.pulldownLink {
display: block;
width: 126px;
height: 18px;
background-image: url(/templates/jsp/_style2/_achs/images/sciFinderOptions.png);
}
.articleOptions .sciFinderOptions ul {
display: block;
position: absolute;
left: 0;
top: 18px;
margin: 0;
padding: 0;
list-style: none;
z-index: 300;
}
.articleOptions .sciFinderOptions ul li {
clear: left;
float: left;
margin: 0;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
.articleOptions .sciFinderOptions ul li a {
display: block;
width: 126px;
padding: 2px 0 0;
border-bottom: 1px solid #fff;
background: #69c;
color: #fff;
text-decoration: none;
}
.articleOptions .sciFinderOptions ul li a:hover {
background: #369;
}
.articleOptions .sciFinderOptions ul li a span {
display: block;
margin: 0 2px 0 3px;
font-size: 11px;
}
a.showThumbs {
float: right;
width: 123px;
height: 18px;
background: url(/templates/jsp/_style2/_achs/images/showAllThumbs.png);
background-position: 0 0;
}
a.showThumbs:hover {
cursor: pointer;
}
.moreLink {
float: right;
margin: 4px 10px 0 0;
font-size: .85em;
text-align: right;
line-height: normal;
}
.viewAllLink {
width: 100%;
margin: 0 0 15px;
font-size: .9em;
text-align: center;
}
#sideCol {
float: right;
width: 182px;
margin: 0;
}
.sideColBox {
display: block;
margin: 0 0 10px;
padding: 7px;
background: #fff;
border: 1px solid #b6b6e1;
font-size: .8em;
line-height: normal;
}
.sideColBox h2 {
margin: 0;
padding: 0 0 10px;
font-size: 1em;
line-height: normal;
}
.sideColBox h3 {
font-size: 1em;
line-height: normal;
}
.sideColBox h4 {
font-size: 1.05em;
line-height: normal;
}
#sideCol .sideColBox ul.listBox {
margin: 0;
padding: 0;
}
#sideCol .sideColBox ul.listBox li {
margin: 0;
padding: 4px; margin: 7px 0 0;
border: 1px solid #ccc;
background-color: #eee;
list-style: none;
font-size: .9em;
}
#sideCol .sideColBox div p {
font-size: 1em;
}
.sideColBox p {
font-size: .9em;
}
.sideColBox a {
text-decoration: none;
}
.sideColBox a:hover {
text-decoration: underline;
}
#sideCol .announcements { background: #cfd7e9; border: 1px solid #8f96ca; }
/* === Journal TOC === */
body.toc #contentMain {
font-size: .875em;
}
body.toc #articleArea {
width: 798px;
background: transparent;
border: 0;
}
#tocHead {
position: relative;
float: left;
width: 796px;
margin: 0 0 10px;
padding: 2px 0 7px;
background: #fff;
border: 1px solid #b6b6e1;
}
#asapHead {
float: left;
width: 788px;
margin: 0 0 10px;
padding: 0 0 0 10px;
}
#tocHead #specialIssueNotice {
margin: 3px 4px;
padding: 0 6px 5px;
background: none;
font: bold .9em Verdana, Arial, Helvetica, sans-serif;
color: #500;
}
#tocHead p {
margin-left: 7px;
font-size: .8em;
}
#tocHead a {
text-decoration: none;
}
#tocHead a:hover {
text-decoration: underline;
}
#tocHead h2 {
height: 29px;
margin: 0 2px;
padding: 7px 0 0 7px;
background: url(/templates/jsp/_style2/_achs/images/h2-bg2.gif) repeat-x;
line-height: normal;
}
#asapHead h2 {
font-size: 1.1em;
padding-bottom: 0;
line-height: normal;
}
#asapHead p {
font-size: .875em;
}
#issueNav {
position: absolute;
top: 2px;
right: 0;
width: 211px;
height: 29px;
background: url(/templates/jsp/_style2/_achs/images/issueNav.gif) no-repeat 0 -58px;
}
#issueNav a {
position: absolute;
top: 0;
display: block;
height: 29px;
margin: 0;
background: url(/templates/jsp/_style2/_achs/images/issueNav.gif) no-repeat;
}
#issueNav .previous {
left: 0;
width: 115px;
background-position: 0 0;
}
#issueNav .next {
left: 115px;
width: 96px;
background-position: -115px 0;
}
#issueNav .previous:hover {
background-position: 0 -29px;
}
#issueNav .next:hover {
background-position: -115px -29px;
}
#issueNav a span { margin-left: -5000px; }
#tocCover {
float: left;
width: 121px;
margin: 7px 0 0 5px;
border: 1px solid #bfd3e3;
text-align: center;
font-size: .8em;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#tocCover img {
border: 1px solid #ccc;
margin: 3px auto;
}
#tocMenu {
float: left;
width: 655px;
margin: 7px 0 7px 7px;
}
#tocMeta {
float: left;
width: 150px;
margin: 0 0 0 7px;
font-size: .8em;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#date {
font-weight: bold;
}
#tocNav {
width: 460px;
float: left;
margin: 0 0 0 5px;
}
#tocNav h4 {
margin: 0;
font-size: .8em;
color: #444;
}
#tocNav ul {
clear: none;
display: block;
width: 586px;
margin: 3px 0 0 0;
padding: 0;
}
#tocNav ul li {
float: left;
width: 148px;
margin: 0 0 4px 17px;
padding: 0 0 7px;
list-style-image: url(/templates/jsp/_style2/_achs/images/bullet1-trans.gif);
font: 10px "Trebuchet MS", Arial, sans-serif;
line-height: normal;
vertical-align: middle;
text-transform: uppercase;
}
#tocNav li img {
margin-right: 2px;
}
#tocNav a:visited {
color: #369;
}
#tocMenu #sampleNotice {
clear: left;
float: left;
width: 95%;
margin: 15px 7px 0 7px;
padding: 3px;
background: #daebe1;
font-size: .8em;
line-height: 15px;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#sampleNotice img, #sampleNotice span {
line-height: 15px;
vertical-align: middle;
}
#sampleNotice img {
width: 44px;
height: 13px;
}
#tocMenu #coverDesc {
clear: left;
margin: 0 7px 7px 7px;
padding: 15px 0 0;
font-size: .8em;
}
#tocMenu #coverDesc a {
text-decoration: underline;
}
#tocMenu #coverDesc a:hover {
text-decoration: none;
}
#tocHead .description {
margin: 0 9px;
padding: 0;
font-size: .8em;
}
#tocHead .blurb {
margin: 0 7px;
font-size: .8em;
}
#asapHead .blurb {
margin: 0;
font-size: .8em;
}
#acNotice {
clear: both;
margin: 0 0 10px;
padding: 3px 2px;
border: 1px solid #ccc;
background: #fcfcfc;
font-size: .8em;
}
#acNotice img {
margin: 0 3px;
vertical-align: middle;
}
#acNotice span, #acNotice a {
vertical-align: bottom;
}
body.toc .articleListHeader, body.toc .articleListFooter {
width: 786px;
margin-left: 12px;
}
body.toc .articleListFooter {
margin-top: 10px;
}
body.search .articleListHeader, body.search .articleListFooter {
width: 633px;
}
body.user .articleListHeader {
width: 805px;
font-size: .8em !important;
}
body.user .articleListFooter {
width: 805px;
font-size: .8em !important;
}
.articleGroup, .mostArticles {
clear: both;
margin: 10px 0 0;
background: #fff;
}
.ASAP {
border-top: 1px solid #bfd3e3;
}
.articleGroupHead {
background: #6982ba url(/templates/jsp/_style2/_achs/images/toc-h3-tl.gif) no-repeat left top;
}
.articleGroup h3 {
display: block;
padding: 4px 7px 3px 10px;
background: url(/templates/jsp/_style2/_achs/images/toc-h3-tr.gif) no-repeat right top;
font-size: .8em;
color: #fff;
text-transform: uppercase;
}
.articleGroup h4 {
display: block;
padding: 3px 7px 7px 10px;
font-size: .875em;
color: #600;
}
.articles {
padding: 10px 0 0;
border: 1px solid #bfd3e3;
border-top: 0;
height: 1%;
}
.mostArticles .articles {
border: 1px solid #bfd3e3;
}
#mostNav {
float: left;
margin: 0 0 15px;
}
#mostNav h3 {
float: left;
margin: .2em 0 0 10px;
padding: 0;
font-size: 1em;
color: #000;
}
#mostNav ul {
float: left;
margin: 0 0 0 10px;
padding: 0;
list-style: none;
}
#mostNav ul li {
float: left;
margin: 0 5px;
}
#mostNav ul li a {
text-decoration: none;
}
#mostNav ul li span {
display: block;
padding: 1px 5px;
border: 1px solid #ccc;
background: #eee;
font-size: .875em;
}
#mostNav ul li a:hover span {
background: #369;
color: #fff;
}
#mostNav ul li.onPage span {
font-weight: bold;
color: #000;
}
/* === Article Boxes === */
.articleBox {
position: relative;
clear: both;
margin: 0 10px 15px;
padding: 0;
border: 1px solid #bfd3e3;
background: #fff url(/templates/jsp/_style2/_achs/images/gradient.gif) repeat-x;
height: 1%;
}
.articleCheck {
position: absolute;
top: 0;
left: 0;
width: 20px;
margin: 3px 0 0;
}
.articleBox a {
color: #35659a;
text-decoration: none;
}
.articleBox a:hover {
text-decoration: underline;
}
.articleBoxMeta {
float: left;
width: 385px;
margin: 5px 0 0 20px;
font: .875em "Trebuchet MS", Arial, Helvetica, sans-serif;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
body.toc .articleBoxMeta {
width: 550px;
}
body.search .articleBoxMeta {
width: 410px;
}
#textArea .articleBoxMeta {
font-size: .95em;
}
#aiContent .articleBoxMeta {
width: 580px;
}
#articleArea .articleBox h2 {
margin: 0 0 5px 0;
padding: 0;
background: transparent;
}
.articleBox h2 a {
color: #000;
}
.articleAuthors {
margin: 0 0 5px;
}
.manType {
color: #600;
}
.articleLinksIcons {
float: right;
width: 160px;
margin: 7px 5px 7px 0;
padding: 0 0 0 7px;
text-align: left;
font: .875em Arial, Helvetica, sans-serif;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
body.toc .articleLinksIcons, body.user .articleLinksIcons {
width: 170px;
}
.articleLinksIcons div {
margin: 0 0 15px;
}
.articleLinksIcons .icons {
margin-bottom: 5px;
}
.articleLinksIcons ul, #textArea .articleLinksIcons ul {
margin: 0 0 15px;
padding: 0;
list-style: none;
}
.articleLinksIcons ul li, #textArea .articleLinksIcons ul li {
margin: 0 0 2px;
padding: 0;
}
body.user #textArea .articleLinksIcons ul li {
font-size: 1em;
}
.articleLinksIcons ul li a, #textArea .articleLinksIcons ul li a {
margin: 0 4px 2px 0;
}
.articleLinksIcons ul a img {
margin: 0 4px 0 0;
}
.articleLinksIcons div div {
margin: 0 0 2px;
}
.articleBox .icons div {
clear: left;
display: block;
margin: 0 0 2px;
color: #444;
line-height: 1.5em;
vertical-align: middle;
}
.articleBox .icons img {
float: left;
margin: 0 4px 0 2px;
}
.articleBoxMeta .icons {
float: left;
margin: 5px 0;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
.figureTray-wrap {
clear: both;
display: block;
width: 100%;
background: url(/templates/jsp/_style2/_achs/images/tray-bg-r.gif) no-repeat right top;
}
.figureTray {
display: block;
width: 100%;
padding: 0;
background: url(/templates/jsp/_style2/_achs/images/tray-bg-l.gif) no-repeat left top;
text-align: center;
}
.figureBox {
display: block;
min-height: 160px;
width: 100%;
margin: 0;
padding: 0;
}
.articleFigure {
margin: 0 auto;
background: transparent;
}
.articleFigure img {
margin: 0 0 7px;
padding: 7px;
border: 1px solid #ccc;
}
#justAcceptedArticles .articleFigure, #justPublishedArticles .articleFigure, #currentIssueArticles .articleFigure, #mostReadArticles .articleFigure, #mostCitedArticles .articleFigure {
overflow: hidden;
}
.articleFigure img.tocGraphic {
max-width: 540px;
max-height: 160px;
}
.trayHandle {
position: relative;
display: block;
width: 100%;
height: 19px;
margin: 0;
padding: 3px 0;
background: url(/templates/jsp/_style2/_achs/images/handle-bg.gif) no-repeat right bottom;
text-align: right;
}
.figureBox .trayHandle {
margin: 7px 0 0;
background: #e4e2e2;
}
.figureNav {
left: 0;
width: 100%;
height: 19px;
text-align: center;
}
.figureNav span {
line-height: 20px;
vertical-align: middle;
font-size: .8em;
}
.figureNav a {
position: absolute;
top: 2px;
display: block;
height: 19px;
}
.figureNav a.prev {
left: 150px;
width: 64px;
background: url(/templates/jsp/_style2/_achs/images/previousFig.gif) no-repeat 0 0;
}
.figureNav a.prev:hover {
background-position: 0 -20px;
}
.figureNav a.next {
right: 167px;
width: 47px;
background: url(/templates/jsp/_style2/_achs/images/nextFig.gif) no-repeat 0 0;
}
.figureNav a.next:hover {
background-position: 0 -20px;
}
body.toc a.prev, body.user a.prev {
left: 233px;
}
body.toc a.next, body.user a.next {
right: 250px;
}
body.search a.prev {
left: 190px;
}
body.search a.next {
right: 197px;
}
.trayHandle .weo {
position: absolute;
top: 2px;
left: 10px;
display: block;
width: 96px;
height: 19px;
overflow: hidden;
}
.trayHandle a.show, .trayHandle a.hide {
position: absolute;
top: 3px;
right: 0;
display: block;
width: 118px;
height: 19px;
}
.trayHandle a.show {
background: url(/templates/jsp/_style2/_achs/images/showThumbs.gif) no-repeat 0 0;
}
.trayHandle a.show:hover {
background-position: 0 -19px;
}
.trayHandle a.hide {
background: url(/templates/jsp/_style2/_achs/images/hideThumbs.gif) no-repeat 0 0;
}
.trayHandle a.hide:hover {
background-position: 0 -19px;
}
/* === ARTICLE === */
#articleContent {
float: left;
width: 796px;
margin: 0 0 20px 5px;
padding: 0;
border: 1px solid #b6b6e1;
background: #fff url(/templates/jsp/_style2/_achs/images/articleContent-bg.gif) repeat-y right top;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#articleContent h3 {
font-size: 1em !important;
}
#articleHead {
position: relative;
clear: both;
margin: 0;
padding: 2px 0 0;
background: #fff;
}
#articleNav, #articleNavC, #articleNavD {
position: absolute;
top: 2px;
right: 0;
width: 227px;
height: 29px;
background: url(/templates/jsp/_style2/_achs/images/articleNav.gif) no-repeat 0 -58px;
}
#articleNav a, #articleNavC a, #articleNavD a {
position: absolute;
height: 29px;
background: url(/templates/jsp/_style2/_achs/images/articleNav.gif);
}
#articleNavC, #articleNavC a {
background-image: url(/templates/jsp/_style2/_achs/images/articleNav-ASAP.gif);
}
#articleNavD {
width: 268px;
}
#articleNavD, #articleNavD a {
background-image: url(/templates/jsp/_style2/_achs/images/articleNav-JAM.gif);
}
#articleNav .previous, #articleNavC .previous, #articleNavD .previous {
left: 0;
width: 65px;
background-position: 0 0;
}
#articleNav .previous:hover, #articleNavC .previous:hover, #articleNavD .previous:hover {
background-position: 0 -29px;
}
#articleNav .next, #articleNavC .next, #articleNavD .next {
left: 65px;
width: 64px;
background-position: -65px 0;
}
#articleNav .next:hover, #articleNavC .next:hover, #articleNavD .next:hover {
background-position: -65px -29px;
}
#articleNav .tocLink, #articleNavC .tocLink, #articleNavD .tocLink {
left: 129px;
width: 93px;
background-position: -129px 0;
}
#articleNavD .tocLink {
width: 134px;
}
#articleNav .tocLink:hover, #articleNavC .tocLink:hover, #articleNavD .tocLink:hover {
background-position: -129px -29px;
}
#articleNav span, #articleNavB span, #articleNavC span, #articleNavD span, #articleNavE span, #articleNavF span {
margin-left: -5000px;
}
#articleHead h2 {
height: 29px;
margin: 0 2px;
padding: 7px 0 0 8px;
color: #304e96;
background: url(/templates/jsp/_style2/_achs/images/h2-bg2.gif) repeat-x;
line-height: normal;
}
#articleNavB, #articleNavE, #articleNavF {
position: absolute;
top: 2px;
right: 0;
width: 102px;
height: 29px;
}
#articleNavF {
width: 143px;
background: url(/templates/jsp/_style2/_achs/images/jamLink.gif);
}
#articleNavB .tocLink, #articleNavE .tocLink, #articleNavF .tocLink {
display: block;
width: 102px;
height: 29px;
background: url(/templates/jsp/_style2/_achs/images/tocLink.gif);
}
#articleNavE .tocLink {
background: url(/templates/jsp/_style2/_achs/images/asapLink.gif);
}
#articleNavF .tocLink {
width: 143px;
background: url(/templates/jsp/_style2/_achs/images/jamLink.gif);
}
#articleNavB .tocLink:hover, #articleNavE .tocLink:hover, #articleNavF .tocLink:hover {
background-position: 0 -29px;
}
#articleMain {
clear: both;
float: left;
width: 616px;
margin: 0 0 0 10px;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#specialIssueNotice {
clear: both;
display: block;
padding: 7px;
background: #eaeaea;
}
#authorBio {
clear: both;
margin: 5px 0;
padding: 7px;
background: #ffc;
}
#articleMain h1 {
margin-bottom: 15px;
font-size: 1.15em;
color: #000;
}
#articleMain h2.deck {
margin: 1em 0 15px;
font: bold .95em "Trebuchet MS", Arial, Helvetica, sans-serif;
color: #333 !important;
}
#articleMain #links {
float: right;
width: 275px;
margin: 0 0 15px 10px;
background: url(/templates/jsp/_style2/_achs/images/gradient1.gif) repeat-x;
text-align: left;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#links ul {
float: left;
width: 120px;
margin: 5px 0 0 5px;
padding: 0;
list-style: none;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#links ul.wide {
width: 140px;
}
#links ul li {
clear: left;
float: left;
width: 100%;
margin: 0 0 7px;
padding: 0;
font-size: .75em;
list-style: none;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#links ul li a, #links ul li a:visited {
float: left;
color: #369;
text-decoration: none;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#links ul li a:hover {
color: #fff;
background: #369;
cursor: pointer;
}
#links ul li span {
margin: 0;
padding: 2px 3px;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#links ul li span.filesize {
clear: none;
padding: 0 2px 0 0;
font-size: .75em;
}
#links ul li img {
position: relative;
top: 2px;
margin: 0 3px 0 0;
}
#links ul li.onPage span {
float: left;
padding: 0 3px;
border: 1px solid #81a2c1;
background: #369;
color: #fff;
}
#links ul li span.blurb {
clear: left;
display: block;
margin-top: -4px;
padding: 0 3px;
font-size: .9em;
}
#articleMeta {
margin-top: 15px;
font-size: .8em;
line-height: 1.3em;
}
#authors {
font-size: 1em;
font-weight: bold;
color: #333;
}
#affiliation, #citation, #doi, #pubDate, #correspondence, #artCopyright {
font-size: .9em;
}
#artCopyright {
font-weight: bold;
}
#affiliation, #citation {
margin: 10px 0 0;
}
#correspondence, #articleIcons {
width: auto;
margin: 7px 0 0;
color: #666;
}
#articleIcons {
float: left;
margin: 7px 0;
}
#articleIcons div {
float: left;
height: 19px;
margin-right: 10px;
overflow: hidden;
}
#articleTools {
clear: none;
float: right;
width: 160px;
margin: 0 4px;
background: #d1e6f6;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#articleTools h3 {
display: block;
margin: 20px 0 0;
padding: 5px 2px 5px 10px;
font: normal .8em Arial, Helvetica, sans-serif !important;
color: #fff;
background: #8495ba;
}
#articleTools h3.lesspad {
margin: 0;
}
#articleTools ul {
display: block;
width: 159px;
margin: 0;
padding: 0;
border-top: 1px solid #aebedc;
border-right: 1px solid #a3b2d4;
list-style: none;
}
#articleTools ul li {
margin: 0;
padding: 0;
border-top: 1px solid #fff;
border-bottom: 1px solid #aebedc;
font-size: .7em;
}
#articleTools ul.noBG li {
border: 0;
background: transparent;
font-size: .7em;
}
#articleTools ul li img {
margin: 0 5px 0 2px;
}
#articleTools li a, #articleTools li a:visited {
display: block;
border-left: 5px solid #a3b2d4;
background: #d1e6f6;
text-decoration: none;
color: #369;
}
#articleTools li a:hover {
border-left: 5px solid orange !important;
background: #fff !important;
}
#articleTools div {
margin: 0 0 5px 10px;
padding: 0;
font-size: .7em;
}
#permalink span {
position: absolute;
display: block;
width: 300px;
margin: 0 0 0 -142px;
background: #eee;
border: 1px solid #555;
z-index: 9000;
}
#container #articleTools #permalink span a.hide, #container #articleTools #permalink span a.hide:hover {
float: right;
width: 15px;
height: 15px;
margin: 2px;
border: 0 !important;
background: url(/templates/jsp/_style2/_achs/images/select-x.gif) no-repeat !important;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#permalink input {
margin: 5px;
font-size: 11px;
}
#permalink span span {
position: static;
display: block;
width: auto;
margin: 5px 5px 0 5px;
border: 0;
}
#articleTools #casSection {
margin: 20px 0;
border-bottom: 3px solid #a3b2d4;
font-size: 1em;
background: #fff;
}
#casSection li.first {
border-top: 0;
}
#casSection #casSectionHead {
width: 155px;
margin: 0;
padding: 0;
border: 3px solid #a3b2d4;
border-left: 5px solid #a3b2d4;
border-right: 0;
}
ul#casExplore {
background: url(/templates/jsp/_style2/_achs/images/casTools-bg.jpg);
}
#articleTools #casSection ul li a {
display: block;
padding-left: 5px;
}
ul#casExplore li a {
background: transparent;
}
#articleTools #casSection ul li a:hover {
background: #fff;
}
#articleTools #casSection ul li h4 {
margin: 0 0 4px 5px;
font-weight: normal;
color: #369;
}
form#casToolAuthor, form#casToolTopic {
position: relative;
display: block;
margin: 0;
padding: 7px 0;
border-left: 5px solid #a3b2d4;
}
#casSection form select, .exploreText {
width: 145px;
margin: 5px 0 0 5px;
font-size: .9em;
}
#exploreText {
width: 138px;
}
form#casToolTopic .submit, form#casToolAuthor .submit {
position: absolute;
top: 5px;
right: 6px;
}
#articleTools ul.history li {
padding: 3px 0 3px 10px;
line-height: normal;
background: #d1e6f6;
}
#articleTools ul.history li strong {
display: block;
font-weight: normal;
}
#articleTools ul.accession li a {
display: block;
padding-left: 5px;
}
#rightColumn ul#relatedArticles {
display: block;
margin: 0 0 25px;
padding: 0;
list-style: none;
height: 1%; /* for IE */
}
ul#relatedArticles a {
display: block;
height: 1%; /* for IE */
}
ul#relatedArticles a:hover {
text-decoration: none;
}
#rightColumn ul#relatedArticles li {
position: relative;
display: block;
margin: 10px 4px 10px 7px;
padding: 0;
height: 1%; /* for IE */
}
#rightColumn ul#relatedArticles li ul {
position: absolute;
left: -372px;
top: -6em;
width: 372px;
margin: 0;
padding: 0;
background: transparent url(/templates/jsp/_style2/_achs/images/relatedBG.gif) no-repeat;
font-size: .95em;
z-index: 5000;
display: none;
}
#rightColumn ul#relatedArticles li ul li {
display: block;
width: 330px;
min-height: 180px;
margin-top: 0;
margin-bottom: 0;
padding: 7px 7px 3em 7px;
border: 2px solid #90b8df;
border-right: 0;
background: #ffffe4;
}
#rightColumn ul#relatedArticles li:hover, #rightColumn ul#relatedArticles li.over {
background: #ffffe4;
}
#rightColumn ul#relatedArticles li:hover ul, #rightColumn ul#relatedArticles li.over ul {
display: block;
}
#rightColumn ul#relatedArticles ul h3 {
margin: 0 0 5px;
font-size: 1em;
line-height: normal;
color: #000;
}
#rightColumn ul#relatedArticles ul div {
margin: 0 0 5px;
}
#rightColumn ul#relatedArticles ul div.linkbar {
position: absolute;
bottom: 0;
left: 0;
width: 344px;
margin: 0;
padding: 5px 0;
background: #ffc;
color: #369;
border-top: 1px solid #999;
text-align: center;
line-height: normal;
}
#rightColumn ul#relatedArticles div.linkbar a {
display: inline;
padding: 0 3px;
color: #369;
white-space: nowrap;
}
#rightColumn ul#relatedArticles div.linkbar a:hover {
text-decoration: underline;
}
#rightColumn ul#relatedArticles ul p {
margin: 5px 0;
padding-top: 5px;
line-height: normal;
border-top: 1px solid #999;
}
#rightColumn ul#relatedArticles cite {
font-size: 1em;
color: #000;
display: inline;
}
.contextualAds {
min-height: 450px;
}
.contextualAds div {
margin: 10px 7px;
padding: 7px 0 0;
border-top: 1px solid #ccc;
}
.contextualAds div.noBorder {
border: 0;
}
#articleBody {
clear: both;
float: left;
width: 610px;
margin: 0;
padding: 0 0 10px;
font-size: .875em;
}
#articleBody h2 {
clear: left;
width: 430px;
padding: 20px 0 3px;
font: bold 1.1em "Trebuchet MS", Arial, Helvetica, sans-serif;
}
#articleBody hr {
clear: right;
display: block;
height: 1px;
margin: 2px 0 10px;
background: #bbc5df;
border: 0;
}
ul.anchors {
position: relative;
float: right;
width: 164px;
margin: 0;
padding: 20px 0 0;
z-index: 1; /* strange, but necessary */
}
ul.anchors li {
position: absolute;
display: block;
margin: 0;
padding: 0;
}
ul.anchors a.anchorIMG {
display: block;
width: 164px;
height: 20px;
background: url(/templates/jsp/_style2/_achs/images/pulldown-anchors.gif) no-repeat;
}
ul.anchors li ul {
position: absolute;
display: block;
width: 162px;
margin: 0;
padding: 0;
border-left: 1px solid #666;
border-right: 1px solid #666;
list-style: none;
background: #e9edf4;
}
ul.anchors li ul li {
position: static;
display: block;
width: 100%;
margin: 0;
padding: 0;
border-bottom: 1px solid #666;
}
ul.anchors li ul li a, .anchors ul li a:visited {
display: block;
width: 162px;
padding: 4px 0;
background: transparent;
color: #021351;
text-decoration: none;
font-size: .8em;
}
ul.anchors li ul li a:hover {
background: #fff;
cursor: pointer;
}
ul.anchors li ul li a span {
display: block;
width: 156px;
margin: 0 2px 0 4px;
line-height: normal;
}
.overlay {
position: absolute;
left: 0;
bottom: 0;
width: 21px;
height: 21px;
background: url('/templates/jsp/_style2/_achs/images/enlarge-overlay.gif');
filter: alpha(opacity=85);
-moz-opacity: 0.85;
-khtml-opacity: 0.85;
opacity: 0.85;
cursor: pointer;
}
#abstractBox, #supInfoBox {
float: left;
width: 608px;
margin: 5px 0;
border: 1px solid #bbc5df;
background: #f4f9fd;
}
#abstractBox {
padding-top: 7px;
}
#absImg {
position: relative;
float: right;
margin: 7px;
padding: 5px;
border: 1px solid #ccc;
background: #fff;
}
#articleBody #abstractBox p {
margin-left: 7px;
margin-right: 7px;
}
#supInfoBox h3 {
margin: 7px 0 0 7px;
font-size: 1em;
color: #000;
}
#supInfoBox ul {
margin: 0 0 20px;
padding: 0 0 0 25px;
}
#supInfoBox ul li {
list-style-image: url(/templates/jsp/_style2/_achs/images/bullet1-trans.gif);
}
#supInfoBox ul li img {
margin: 0 5px 0 0;
}
#supInfoBox p {
font-size: .875em;
margin: 10px 7px 7px 7px;
}
.figure {
float: left;
width: 100%;
margin: 10px 0 15px;
border-top: 1px solid #666;
border-bottom: 1px solid #666;
background: #eee;
}
a.thumbnail {
position: relative;
float: left;
margin: 7px 15px 7px 7px;
padding: 5px;
border: 1px solid #ccc;
background: #fff;
}
.figure .caption {
margin: 7px;
font: .9em Arial, Helvetica, sans-serif;
}
#articleMain ol {
margin: 0 0 0 35px;
padding: 0;
}
#articleMain ol li {
margin: 0 0 10px;
word-wrap: break-word;
}
#citedBy {
float: left;
display: block;
margin: 0;
padding: 0;
font-size: .9em;
}
#citedBy a {
display: block;
height: 1%; /* for IE */
}
/* Atypon - contributor links must be inline */
#citedBy .contributors a {
display: inline;
height: auto;
}
#citedBy a:hover {
text-decoration: none;
}
#citedBy li {
position: relative;
clear: left;
float: left;
display: block;
width: 585px;
margin: 5px 0;
padding: 7px;
z-index: 5000; /* for IE */
}
#citedBy li.blue {
background: #f0f9fd;
}
#citedBy .cover {
float: left;
width: 90px;
margin: 0 7px 0 0;
border: 1px solid #ccc;
}
#articleBody #citedBy h2 {
clear: none;
margin: 0;
padding: 0;
font-size: 1em;
width: auto;
}
#citedBy h2 a {
text-decoration: none;
}
#citedBy h2 a:hover {
text-decoration: underline;
}
#citedBy li ul {
position: absolute;
right: -365px;
top: -10em;
width: 373px;
margin: 0;
padding: 0;
background: url(/templates/jsp/_style2/_achs/images/citedBG.gif) no-repeat;
font-size: .875em;
z-index: 8000;
display: none;
}
#citedBy li ul li {
float: right;
width: 330px;
min-height: 180px;
margin-top: 0;
margin-bottom: 0;
padding: 7px 7px 3em 7px;
border: 2px solid #90b8df;
border-left: 0;
background: #ffffe4;
}
#citedBy li:hover, #citedBy li.over {
background: #ffffe4;
}
#citedBy li:hover ul, #citedBy li.over ul {
display: block;
}
#citedBy ul h3 {
margin: 0 0 5px;
font-size: 1em;
line-height: normal;
color: #000 !important;
}
#citedBy ul div {
margin: 0 0 5px;
}
#citedBy div.linkbar {
position: absolute;
bottom: 0;
left: 0;
width: 344px;
margin: 0;
padding: 5px 0;
background: #ffc;
color: #369;
border-top: 1px solid #999;
text-align: center;
line-height: normal;
}
#citedBy div.linkbar a {
display: inline;
padding: 0 3px;
color: #369;
white-space: nowrap;
text-decoration: none;
}
#citedBy div.linkbar a:hover {
text-decoration: underline;
}
#citedBy ul p {
margin: 5px 0;
padding-top: 5px;
line-height: normal;
border-top: 1px solid #999;
}
#citedBy cite {
font-size: 1em;
color: #000;
}
sup a.ref {
padding: 3px;
font-size: 1.1em;
}
a.ref:hover {
background: #369;
color: #fff;
text-decoration: none;
}
span.ref .balloon a {
font-size: 1em;
text-decoration: underline;
}
span.ref .balloon a:hover {
text-decoration: none;
background: transparent;
color: #369;
}
.balloon-wrap {
position: absolute;
margin: -10px 0 0 2px;
padding: 0 0 0 18px;
background: transparent url(/templates/jsp/_style2/_achs/images/balloon-notch.gif) no-repeat;
z-index: 8000;
display: none;
}
.balloon {
float: left;
width: 360px;
padding: 0 7px 7px 7px;
border: 2px solid #90b8df;
border-left: 0;
background: #ffffe4;
line-height: normal;
font-size: 12px;
color: #444;
text-decoration: none;
}
.balloon a.close {
float: right;
width: 15px;
height: 15px;
margin: 7px 0 5px 7px;
padding: 0;
background: url(/templates/jsp/_style2/_achs/images/select-x.gif) no-repeat;
}
span.ref .balloon a {
padding: 0;
}
span.ref .balloon a.close:hover {
background: url(/templates/jsp/_style2/_achs/images/select-x.gif) no-repeat;
}
.balloon span {
display: block;
margin: 10px 0 0;
}
.balloon span span { display: inline;}
span.ref .balloon .refLink {
float: right;
margin: 7px 0 0;
}
.citationLinks {
display: inline;
margin-left: .1em;
}
body.article .rtColBox, body.newsStory .rtColBox {
padding: 0 0 7px;
}
body.article .rtColBox div, body.newsStory .rtColBox div, body.article .rtColBox p, body.newsStory .rtColBox p {
margin: 0 7px;
}
body.article .rtColBox h2, body.newsStory .rtColBox h2 {
margin: 2px 2px 10px 2px;
padding: 4px 7px;
background: url(/templates/jsp/_style2/_achs/images/h2-bg2.gif) repeat-x;
}
body.article #container .rtColBox h3 {
margin-left: 7px;
font: bold 1em 'Trebuchet MS', Arial, Helvetica, sans-serif;
color: #000;
}
body.article #rightColumn ul {
margin: 0 5px 25px 7px;
list-style: none;
}
body.article #rightColumn ul li {
margin: 10px 0;
list-style-image: none;
}
body.article #rightColumn ul.oneline {
margin-top: 7px;
}
body.article #rightColumn ul.oneline li {
margin: 2px 0;
}
body.article ul li cite {
display: block;
margin: 0;
padding: 0;
color: #444;
font-size: .9em;
height: 1%;
}
/* === VARIATIONS OF ABSTRACT PAGE === */
.archiveNote {
clear: both;
width: 100%;
margin-top: 15px;
padding: 7px 0;
border-top: 1px solid #600;
border-bottom: 1px solid #600;
background: #ffc;
}
.archiveNote p {
margin: 0 10px;
font-size: .8em;
line-height: normal;
}
#firstPage img {
width: 99%;
margin: 7px 0;
border: 1px solid #ccc;
}
.access {
clear: both;
float: left;
width: 608px;
margin: 10px 0 20px;
padding: 0;
border: 1px solid #999;
background: #ffffe4;
line-height: normal;
}
.access div div {
margin: 0 0 0 7px;
font-size: .75em;
}
.access h4 {
margin: 0 0 0 7px;
padding: 0;
font-size: .8em;
font-weight: bold;
color: #500;
}
.access .head {
height: 20px;
padding: 3px 0;
background: #ffc;
border-bottom: 1px solid #ccc;
color: #500;
line-height: 20px;
}
.head img {
float: left;
margin: 0 7px;
}
.access .explanation {
float: left;
width: 300px;
margin: 7px 7px 0 0;
padding: 0;
}
.access ul {
margin: 3px 0 10px;
padding: 0 0 0 25px;
font-size: .75em;
}
.access ul li {
margin-bottom: 3px;
list-style-image: url(/templates/jsp/_style2/_achs/images/bullet1-trans.gif);
}
.access .signIn, .access .purchase {
float: right;
width: 292px;
margin: 0 0 0 7px;
padding: 7px 0 0;
border-left: 1px solid #ccc;
border-bottom: 1px solid #ccc;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
.access .signIn {
border-bottom: 0;
}
.signIn form {
margin: 0;
padding: 0;
}
.signIn .row {
margin-left: 0;
}
.signIn label {
clear: none;
float: left;
width: 133px;
margin: 10px 0 0 7px;
font-weight: bold;
}
.signIn input {
width: 125px;
margin: 0 0 0 7px;
padding: 0;
}
.signIn .error {
float: left;
margin: 7px 7px 0;
color: #500 !important;
font-family: Arial, Helvetica, sans-serif !important;
}
.signIn #submit {
width: auto;
margin: 10px 15px 0 7px;
}
.searchTip {
clear: both;
float: left;
width: 100%;
margin: 0;
padding: 0;
border-bottom: 1px solid #400;
background: #ffc;
line-height: normal;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
.searchTip img {
float: left;
margin: 7px;
}
.searchTip div {
font-size: .75em;
margin: 7px 7px 7px 0;
}
.searchTip div a {
white-space: nowrap;
}
/* === START OF FIGURE VIEWER STYLES === */
#figureViewer-wrap {
position: absolute;
left: 0;
width: 899px;
margin: 0 50px;
padding: 0;
background: transparent url(/templates/jsp/_style2/_achs/images/figureViewer-bg1.gif) no-repeat;
z-index: 9000;
}
#figureViewer {
margin: 0;
width: 899px;
margin: 15px 0 0;
background: #e3e1e2 url(/templates/jsp/_style2/_achs/images/figureViewer-bg2.gif) repeat-y;
}
#figureViewerNav {
position: relative;
width: 899px;
height: 2em;
line-height: 20px;
margin: 0;
}
#figureViewerNav .figureNav {
position: absolute;
width: 280px;
left: 310px;
}
#figureViewerNav a.prev {
top: 0;
left: 0;
}
#figureViewerNav a.next {
top: 0;
right: 0;
}
#figureViewerNav .figureNav span {
font-size: .75em;
vertical-align: bottom;
}
#figureViewerNav a.close {
position: absolute;
top: -5px;
right: 16px;
width: 100px;
min-height: 15px;
padding: 0 20px 0 0;
background: url(/templates/jsp/_style2/_achs/images/select-x.gif) no-repeat top right;
font: .7em Arial, Helvetica, sans-serif;
text-align: right;
text-decoration: none;
}
#figureViewerNav a.close:hover {
text-decoration: underline;
}
#figureCanvas {
position: relative;
width: 870px;
min-height: 200px;
margin: 0 0 0 12px;
border: 1px solid #666;
background: #fff;
text-align: center;
}
#figureCanvas .figBox {
float: none;
display: block;
width: 800px;
margin: 0 auto 15px;
padding: 10px 0 0;
border: 0;
background: #fff;
}
.figBox img {
display: block;
border: 1px solid #ccc;
margin: 7px auto;
padding: 7px;
max-width: 500px;
}
#figureCanvas #figTools {
position: absolute;
top: 10px;
left: 3px;
text-align: left;
}
#figTools div {
height: 19px;
margin: 0 0 5px;
overflow: hidden;
}
#figTools div.weo {
width: 105px;
}
#figTools div.highRes {
width: 115px;
}
#figTools div.ppt {
width: 168px;
}
#figTools div a {
display: block;
height: 19px;
}
#figTools div.weo a {
background: url(/templates/jsp/_style2/_achs/images/icon-weo.gif) no-repeat;
}
#figTools div.highRes a {
background: url(/templates/jsp/_style2/_achs/images/icon-highres.gif) no-repeat;
}
#figTools div.ppt a {
background: url(/templates/jsp/_style2/_achs/images/icon-ppt.gif) no-repeat;
}
#figTools div a:hover {
background-position: 0px -19px;
}
#figTools div a span {
display: none;
}
#figureCanvas .caption {
margin: 7px 7px 0 7px;
padding: 10px 0;
border-top: 1px solid #ccc;
font: .8em 'Trebuchet MS', Arial, Helvetica, sans-serif;
}
#figureViewer-footer {
display: block;
width: 899px;
height: 15px;
}
/* === END OF FIGURE VIEWER STYLES === */
/* === Cited By Page === */
#fullCitList h2 {
margin: 0 !important;
padding: 0 !important;
}
/* === AUTHOR INDEX === */
#aiContent {
width: 796px;
margin: 0 0 0 5px;
padding: 0;
border: 1px solid #b6b6e1;
background: #fff;
}
#aiContent h3 {
margin: 5px 0 10px 7px;
}
#aiVolJump {
display: block;
margin: 20px 0 15px;
font-size: .875em;
}
#aiVolJump strong {
margin-left: 7px;
font-size: .875em;
}
div.subLinks a {
margin: 0 0 0 7px;
font-size: .8em;
}
#aiContent .articles {
padding: 10px 0 0;
border: 0;
}
#container #aiContent .articleBox h2 {
font-size: 1.1em;
background: transparent !important;
}
#mainBody #aiContent .articleBox h3 {
margin: 0;
padding: 0;
font-size: 1.1em;
color: #333;
}
#aiContent .articleBox {
font-size: .875em;
}
#aiContent .articleBox div {
margin-left: 5px;
}
#aiContent .articleBox div div {
margin-left: 0;
}
#aiContent .noFigFooter {
clear: both;
}
div.alphaSelect {
display: block;
width: 782px;
height: 24px;
margin: 0 auto 7px auto;
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif);
}
div.alphaSelect a {
float: left;
width: 30px;
height: 24px;
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif);
}
div.alphaSelect a:hover {
cursor: pointer;
}
div.alphaSelect a span {
display: block;
width: 30px;
height: 24px;
background: transparent;
}
div.alphaSelect a.a {
background-position: 0 0;
}
div.alphaSelect a.a:hover {
background-position: 0 -48px;
}
div.alphaSelect a.a span.onPage {
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif) 0 -24px;
}
div.alphaSelect a.b {
background-position: -30px 0;
}
div.alphaSelect a.b:hover {
background-position: -30px -48px;
}
div.alphaSelect a.b span.onPage {
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif) -30px -24px;
}
div.alphaSelect a.c {
background-position: -60px 0;
}
div.alphaSelect a.c:hover {
background-position: -60px -48px;
}
div.alphaSelect a.c span.onPage {
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif) -60px -24px;
}
div.alphaSelect a.d {
background-position: -90px 0;
}
div.alphaSelect a.d:hover {
background-position: -90px -48px;
}
div.alphaSelect a.d span.onPage {
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif) -90px -24px;
}
div.alphaSelect a.e {
background-position: -120px 0;
}
div.alphaSelect a.e:hover {
background-position: -120px -48px;
}
div.alphaSelect a.e span.onPage {
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif) -120px -24px;
}
div.alphaSelect a.f {
background-position: -150px 0;
}
div.alphaSelect a.f:hover {
background-position: -150px -48px;
}
div.alphaSelect a.f span.onPage {
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif) -150px -24px;
}
div.alphaSelect a.g {
background-position: -180px 0;
}
div.alphaSelect a.g:hover {
background-position: -180px -48px;
}
div.alphaSelect a.g span.onPage {
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif) -180px -24px;
}
div.alphaSelect a.h {
background-position: -210px 0;
}
div.alphaSelect a.h:hover {
background-position: -210px -48px;
}
div.alphaSelect a.h span.onPage {
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif) -210px -24px;
}
div.alphaSelect a.i {
background-position: -240px 0;
}
div.alphaSelect a.i:hover {
background-position: -240px -48px;
}
div.alphaSelect a.i span.onPage {
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif) -240px -24px;
}
div.alphaSelect a.j {
background-position: -270px 0;
}
div.alphaSelect a.j:hover {
background-position: -270px -48px;
}
div.alphaSelect a.j span.onPage {
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif) -270px -24px;
}
div.alphaSelect a.k {
background-position: -300px 0;
}
div.alphaSelect a.k:hover {
background-position: -300px -48px;
}
div.alphaSelect a.k span.onPage {
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif) -300px -24px;
}
div.alphaSelect a.l {
background-position: -330px 0;
}
div.alphaSelect a.l:hover {
background-position: -330px -48px;
}
div.alphaSelect a.l span.onPage {
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif) -330px -24px;
}
div.alphaSelect a.m {
background-position: -360px 0;
}
div.alphaSelect a.m:hover {
background-position: -360px -48px;
}
div.alphaSelect a.m span.onPage {
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif) -360px -24px;
}
div.alphaSelect a.n {
background-position: -390px 0;
}
div.alphaSelect a.n:hover {
background-position: -390px -48px;
}
div.alphaSelect a.n span.onPage {
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif) -390px -24px;
}
div.alphaSelect a.o {
background-position: -420px 0;
}
div.alphaSelect a.o:hover {
background-position: -420px -48px;
}
div.alphaSelect a.o span.onPage {
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif) -420px -24px;
}
div.alphaSelect a.p {
background-position: -450px 0;
}
div.alphaSelect a.p:hover {
background-position: -450px -48px;
}
div.alphaSelect a.p span.onPage {
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif) -450px -24px;
}
div.alphaSelect a.q {
background-position: -480px 0;
}
div.alphaSelect a.q:hover {
background-position: -480px -48px;
}
div.alphaSelect a.q span.onPage {
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif) -480px -24px;
}
div.alphaSelect a.r {
background-position: -510px 0;
}
div.alphaSelect a.r:hover {
background-position: -510px -48px;
}
div.alphaSelect a.r span.onPage {
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif) -510px -24px;
}
div.alphaSelect a.s {
background-position: -540px 0;
}
div.alphaSelect a.s:hover {
background-position: -540px -48px;
}
div.alphaSelect a.s span.onPage {
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif) -540px -24px;
}
div.alphaSelect a.t {
background-position: -570px 0;
}
div.alphaSelect a.t:hover {
background-position: -570px -48px;
}
div.alphaSelect a.t span.onPage {
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif) -570px -24px;
}
div.alphaSelect a.u {
background-position: -600px 0;
}
div.alphaSelect a.u:hover {
background-position: -600px -48px;
}
div.alphaSelect a.u span.onPage {
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif) -600px -24px;
}
div.alphaSelect a.v {
background-position: -630px 0;
}
div.alphaSelect a.v:hover {
background-position: -630px -48px;
}
div.alphaSelect a.v span.onPage {
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif) -630px -24px;
}
div.alphaSelect a.w {
background-position: -660px 0;
}
div.alphaSelect a.w:hover {
background-position: -660px -48px;
}
div.alphaSelect a.w span.onPage {
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif) -660px -24px;
}
div.alphaSelect a.x {
background-position: -690px 0;
}
div.alphaSelect a.x:hover {
background-position: -690px -48px;
}
div.alphaSelect a.x span.onPage {
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif) -690px -24px;
}
div.alphaSelect a.y {
background-position: -720px 0;
}
div.alphaSelect a.y:hover {
background-position: -720px -48px;
}
div.alphaSelect a.y span.onPage {
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif) -720px -24px;
}
div.alphaSelect a.z {
background-position: -750px 0;
}
div.alphaSelect a.z:hover {
background-position: -750px -48px;
}
div.alphaSelect a.z span.onPage {
background: url(/templates/jsp/_style2/_achs/images/alphabet.gif) -750px -24px;
}
/* === START OF SEARCH PAGE STYLES === */
body.search #content-wrap {
width: 1000px;
}
body.search #content {
width: 995px;
}
body.search #contentMain {
width: 995px;
}
body.search h2 {
margin: 3px 3px 10px 3px;
padding: 4px 7px;
background: #d8e4ee url(/templates/jsp/_style2/_achs/images/h2-bg.gif) repeat-x;
line-height: normal;
}
#criteria {
float: left;
width: 323px;
margin: 0;
border: 1px solid #d8e5ee;
background: #d8e5ee;
}
.searchInterface { /* atypon change - rename */
float: left;
width: 323px;
padding: 0 0 15px;
background: #fff;
font-size: .75em;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
.searchInterface h4 {/* atypon change - rename */
margin: 15px 7px 0 7px;
font-size: 1.1em;
color: #333;
}
.searchInterface h5 {/* atypon change - rename */
width: 307px;
margin: 20px 0 4px;
font-size: 1.1em;
color: #444;
border-bottom: 1px solid #ccc;
}
.searchInterface a {/* atypon change - rename */
text-decoration: none;
}
.searchInterface a:hover {/* atypon change - rename */
text-decoration: underline;
}
.searchInterface hr {/* atypon change - rename */
clear: both;
display: block;
height: 1px;
margin: 7px 0 10px;
background: #bbc5df;
border: 0;
}
.searchInterface div, .searchInterface span {/* atypon change - rename */
margin: 0 7px;
line-height: normal;
}
.searchInterface .filters a {/* atypon change - rename */
font-size: .9em;
}
.searchInterface span, .searchTip span {/* atypon change - rename */
margin: 0;
color: #500;
}
.searchInterface p {/* atypon change - rename */
margin: 15px 7px 15px 7px;
line-height: normal;
}
.searchInterface ul {/* atypon change - rename */
margin: 0 7px 15px 7px;
padding: 0;
list-style: none;
}
.searchInterface ul li {/* atypon change - rename */
margin: 0 0 2px;
line-height: normal;
}
.searchInterface ul.filters {/* atypon change - rename */
margin-bottom: 7px;
}
.searchInterface ul.filters li {/* atypon change - rename */
color: #500;
}
.searchInterface ul.filters strong {/* atypon change - rename */
color: #000;
font-weight: normal;
}
#advSearch {
float: left;
margin: 15px 0 20px 7px;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#advSearch div {
margin: 10px 0 0 2px;
}
#advSearch .full {
width: 303px;
}
#stemOption label {
margin: 0 7px 0 0;
}
#advSearch #journalFilter, #advSearch #journalFilter2, #advSearch #dateFilter {
margin-top: 0;
}
#journalFilter p {
margin: 0;
padding: 3px 0 0;
}
#journalFilter ul {
width: 303px;
margin: 10px 0 0;
padding: 0;
}
#journalFilter ul li {
width: 288px;
margin: 0 0 2px 14px;
padding: 0;
color: #666;
list-style-image: url(/templates/jsp/_style2/_achs/images/bullet1-trans.gif);
}
.searchInterface div.button {
float: right;
margin: 5px 7px 5px 0 !important;
}
#jFilterInterface {
position: absolute;
top: 330px;
left: 255px;
float: left;
width: 560px;
padding: 10px 0;
border: 1px solid #333;
background: #e0e8f1;
z-index: 6000;
}
#jFilterInterface a.close {
float: right;
width: auto;
height: 15px;
margin: 0 7px;
padding: 0 20px 0 0;
background: url(/templates/jsp/_style2/_achs/images/select-x.gif) no-repeat right top;
text-decoration: none;
}
#jFilterInterface a.close:hover {
text-decoration: underline;
}
#jFilterInterface h4 {
margin: 0 0 0 10px;
}
#jFilterInterface p {
margin: 0 0 7px 10px;
font-size: .875em;
}
#jFilterInterface div.buttons {
float: none;
display: block;
width: 100%;
margin: 0 0 10px;
}
#jFilterInterface #save {
margin: 0 20px 0 10px;
}
#jFilterInterface div.buttons a, #jFilterInterface div.buttons a:visited {
color: #369;
}
#jFilterInterface div {
float: left;
width: 265px;
margin: 0 0 0 7px;
}
#jFilterInterface label {
display: block;
}
#advSearch label {
font-size: .95em;
}
#jlist {
width: 305px;
}
#dateFilter {
float: right;
}
#dateFilter div {
clear: right;
margin: 0 0 7px;
}
#dateFilter input {
margin-right: 0;
}
#dateFilter label {
margin: 0 10px 0 0;
}
#dateFilter select {
float: right;
width: 100px;
margin: 0 7px 7px 3px;
}
#dateFilter span {
float: right;
margin: 2px 7px 7px 0;
color: #000;
}
#advSearchSub {
float: right;
}
#advSearchSub span {
position: relative;
top: -5px;
margin-right: 15px;
}
#advSearchSub input {
margin: 0 7px 0 0;
}
#saveSearchBox {
position: relative;
clear: both;
height: 1%; /* for IE */
margin-top: 20px;
padding: 7px 7px 27px 7px;
background: #eef6fc;
border: 1px solid #b2beda;
}
#saveSearchBox #saveSearchA {
margin: -5px 0 5px 0;
}
#saveSearchBox #saveSearchB {
margin: 0;
}
#saveSearchBox a.close {
position: absolute;
top: 2px;
right: 2px;
display: block;
width: 100px;
min-height: 15px;
padding: 0 20px 0 0;
background: url(/templates/jsp/_style2/_achs/images/select-x.gif) no-repeat top right;
font: .9em Arial, Helvetica, sans-serif;
text-align: right;
text-decoration: none;
}
#saveSearchBox h3 {
margin: 0 0 7px 0;
font-size: 1.2em;
color: #304e96;
}
.searchInterface #saveSearchBox div {/* atypon change - rename */
margin: 0;
}
#saveSearchBox #saveSearchB div {
margin: 5px 0 10px 0;
}
#saveSearchBox #searchName {
margin: 6px 5px 0 0;
font-size: .9em;
}
#saveSearchBox #saveSearchB select {
margin: 4px 0 10px 0;
}
#saveit {
position: relative;
top: 5px;
}
#finalize {
position: absolute;
right: 5px;
bottom: 7px;
}
#saveSearchBox #viewSaved {
position: absolute;
text-align: right;
bottom: 2px;
right: 7px;
}
body.search .findCitation {
clear: left;
padding: 7px 0 1px 0;
background: #6982ba;
}
body.search .findCitation h3 {
margin: 0 0 0 14px;
padding: 0;
background: transparent;
}
body.search .findCitation select {
display: block;
width: auto;
margin: 7px 0 0 0;
}
body.search #citationJump div {
margin: 0 14px 7px 14px;
}
body.search #citationJump #citJmpVol {
margin-top: 7px;
}
.searchInterface .fuzzyName {/* atypon change - rename */
text-align: right;
}
.searchInterface .fuzzyName div {/* atypon change - rename */
margin: 0 7px 0 0;
}
#results, #guide {
position: relative;
clear: none;
float: right;
width: 655px;
margin: 0 5px 0 0;
border: 1px solid #d8e5ee;
background: #fff;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#results h2.heading, #guide h2.heading {
float: left;
margin: 0 0 10px 0;
background: transparent;
}
#resultsHead, #guideHead {
position: relative;
width: 652px;
height: 29px;
margin: 3px 0 0 3px;
background: #d8e4ee url(/templates/jsp/_style2/_achs/images/h2-bg.gif) repeat-x;
}
#guideHead {
width: 650px;
}
#relevanceBox {
float: right;
height: 29px;
margin: 1px 0 0;
padding: 0;
background: url(/templates/jsp/_style2/_achs/images/relevanceBox.gif) no-repeat right top;
font-size: .7em;
}
#relevanceBox span {
float: left;
margin: 4px 7px 0 3px;
}
#relBoxLeft {
float: left;
width: 7px;
height: 29px;
background: url(/templates/jsp/_style2/_achs/images/relevanceBoxLeft.gif) no-repeat;
}
#relevanceBox select {
float: left;
height: 17px;
margin: 4px 10px 0 0;
}
#relevanceBox select {
font-size: 1em;
}
.resultInfo {
clear: both;
float: left;
width: 100%;
margin: 15px 0 10px;
text-align: center;
}
.showing {
float: left;
margin: 1px 0 0 13px;
font-size: .75em;
}
.perPage {
float: right;
margin: 1px 7px 0 0;
font-size: .75em;
}
.resultsNav {
clear: both;
}
.resultsNav span {
font-size: .75em;
}
.resultsNav a {
margin: 0;
padding: 0 4px;
border: 1px solid #fff;
font-size: .75em;
text-decoration: none;
}
.resultsNav a:hover {
border-color: #369;
}
body.search #textArea {
width: 100%;
border: 0;
}
body.search #textArea h3 {
font-size: 1.2em;
color: #369;
}
body.search #articleArea {
width: 100%;
border: 0;
font-size: .875em;
}
body.search .articleListHeader, body.search .articleListFooter {
clear: both;
width: 616px;
margin: 0 0 10px 11px;
}
.articleBox .snippet {
clear: both;
float: left;
margin: 7px 0 0;
color: #666;
line-height: normal;
}
.articleBox .snippet, .articleBox .snippet * {
font-size: 11px !important;
}
.articleBox .snippet p {
margin: 0 0 7px !important;
}
ul.tabs {
clear: both;
float: left;
height: 25px;
width: 645px;
margin: 7px 0 0 0;
padding: 0 0 0 10px;
background: url(/templates/jsp/_style2/_achs/images/tabs-bglayer.gif) repeat-x;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#criteria ul.tabs {
width: 313px;
}
ul.tabs li {
float: left;
width: auto;
height: 25px;
margin: 0 0 0 2px;
list-style: none;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
ul.tabs li a {
float: left;
width: auto;
height: 25px;
background: transparent url(/templates/jsp/_style2/_achs/images/tabLeft.gif);
text-decoration: none;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
ul.tabs li a span {
float: left;
height: 21px;
margin: 0;
padding: 4px 7px 0 7px;
font-size: .75em;
background: transparent url(/templates/jsp/_style2/_achs/images/tabRight.gif) no-repeat top right;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#criteria ul.tabs li a span {
background: transparent url(/templates/jsp/_style2/_achs/images/tabRight-blue.gif) no-repeat top right;
}
ul.tabs li.nowShowing a {
background-position: 0 -50px;
}
ul.tabs li.nowShowing a span, #criteria ul.tabs li.nowShowing a span {
background-position: right -50px;
}
ul.tabs li a:hover {
background-position: 0 -25px;
cursor: pointer;
}
ul.tabs li a:hover span, #criteria ul.tabs li a:hover span {
background-position: right -25px;
}
.genPageBox {
clear: both;
margin: 0 10px 15px;
padding: 0 0 7px 10px;
border: 1px solid #bfd3e3;
background: #fff url(/templates/jsp/_style2/_achs/images/gradient.gif) repeat-x;
font-size: .875em;
}
.genPageBox h2 {
margin: 5px 0 0 10px !important;
padding: 0 !important;
background: transparent !important;
}
.genPageBox h2 a {
color: #35659a;
text-decoration: none;
}
.genPageBox h3 {
margin: 0 0 0 10px !important;
font-style: italic !important;
font-weight: normal !important;
font-size: 1em !important;
color: #000 !important;
}
.genPageBox h2 a:hover {
text-decoration: underline;
}
.genPageBox div {
margin: 5px 0 0 10px;
}
.genPageBox div span {
font-style: italic;
}
.genPageBox .snippet {
float: none;
}
#searchTipsLink {
float: right;
margin: 5px 8px 0 0;
font-size: .7em;
}
#searchTipsLayer {
position: absolute;
right: 0;
top: 0;
width: 635px;
height: 100%;
padding: 7px 10px;
background: #d8e3ed;
z-index: 5000;
}
#searchTipsLayer h1 {
font-size: 1.2em;
margin-bottom: 1em;
}
#searchTipsLayer h1, #searchTipsLayer h3 {
color: #000;
}
#searchTipsLayer p, #searchTipsLayer li {
font-size: .8em;
}
#searchTipsLayer .button {
float: right;
width: 10em;
margin: 5px 0 15px;
text-align: center;
font-size: .8em;
}
#searchTipsLayer h1 {
clear: left;
}
/* === END OF SEARCH PAGE STYLES === */
/* === START OF ISSUE LIST STYLES === */
#issueList {
margin: 15px 0 0;
}
ul.preIssue, ul.volumes {
display: block;
list-style: none;
margin: 0 0 20px;
padding: 0 !important;
}
ul.preIssue a, ul.preIssue a:visited {
font-size: .9em;
text-decoration: none;
color: #369;
}
ul.volumes {
margin: 10px 0 0;
}
ul.volumes ul {
display: block;
margin: 5px 0 0;
padding: 0 0 10px 30px;
}
ul.volumes ul li {
font-size: .9em;
list-style-image: url(/templates/jsp/_style2/_achs/images/bullet1-trans.gif);
}
ul.volumes ul li img {
vertical-align: middle;
padding-bottom: 2px;
}
ul.volumes a, ul.volumes a:visited {
text-decoration: none;
font-weight: bold;
color: #369;
}
#issueList a:hover {
color: #500;
}
ul.volumes ul a, ul.volumes ul a:visited {
font-weight: normal;
}
ul.volumes .plusMinus {
float: left;
width: 13px;
height: 13px;
margin: 2px 5px 0 0;
background: url(/templates/jsp/_style2/_achs/images/plusMinus.gif) no-repeat;
overflow: hidden;
}
ul.volumes .minus {
background-position: 0 -13px;
}
ul.volumes .special {
font-size: .9em;
color: #555;
}
/* === END OF ISSUE LIST STYLES === */
/* === START OF COVER ART GALLERY STYLES === */
#volumeNav {
position: absolute;
top: 2px;
right: 0;
width: 220px;
height: 29px;
background: url(/templates/jsp/_style2/_achs/images/volumeNav.gif) no-repeat 0 -58px;
}
#volumeNav a {
position: absolute;
display: block;
height: 29px;
margin: 0;
background: url(/templates/jsp/_style2/_achs/images/volumeNav.gif) no-repeat;
}
#volumeNav .previous {
left: 0;
width: 115px;
background-position: 0 0;
}
#volumeNav .next {
left: 115px;
width: 96px;
background-position: -115px 0;
}
#volumeNav .previous:hover {
background-position: 0 -29px;
}
#volumeNav .next:hover {
background-position: -115px -29px;
}
#volumeNav a span { margin-left: -5000px; }
ul#coverVol {
position: relative;
width: 164px;
margin: 10px 0 30px 21px;
padding: 0 0 12px;
z-index: 1; /* strange, but necessary */
}
ul#coverVol li {
position: absolute;
display: block;
margin: 0;
padding: 0;
}
ul#coverVol a.volIMG {
display: block;
width: 164px;
height: 20px;
background: url(/templates/jsp/_style2/_achs/images/pulldown-volume.gif) no-repeat;
}
ul#coverVol li ul {
position: absolute;
display: block;
width: 162px;
margin: 0;
padding: 0;
border-left: 1px solid #dacfbd;
border-right: 1px solid #dacfbd;
list-style: none;
background: #e9edf4;
}
ul#coverVol li ul li {
position: static;
display: block;
width: 100%;
margin: 0;
padding: 0;
border-bottom: 1px solid #dacfbd;
}
ul#coverVol li ul li a, ul#coverVol li ul li a:visited {
display: block;
width: 162px;
background: transparent;
color: #021351;
text-decoration: none;
font-size: .8em;
}
ul#coverVol li ul li a:hover {
background: #fff;
cursor: pointer;
}
ul#coverVol li ul li a span {
display: block;
width: 156px;
margin: 0 2px 0 4px;
}
#coverArea .footer {
clear: both;
}
.coverNav {
margin: 0 0 15px;
text-align: center;
}
.coverNav .showing {
float: none;
margin: 0 10px 0 0;
font-size: .9em;
}
.coverNav * {
font-size: .9em;
}
.coverNav a {
margin: 0 7px;
}
body.coverArt h4, body.coverArt h5 {
margin: 0;
padding: 0;
font: .8em "Trebuchet MS", Arial, Helvetica, sans-serif;
color: #444;
}
.coverArtBox {
clear: none;
float: left;
width: 159px;
margin: 0 0 30px;
text-align: center;
white-space: nowrap;
height: 270px; /* Atypon: floats do not work correctly without height set */
display: inline; /* EXPLORER SUCKS BIGTIME */
}
.coverArtBox div {
font-size: .8em;
}
.coverArtBox img {
margin: 5px 0;
border: 1px solid #666;
}
.theCover {
float: right;
margin: 0 10px 0 10px;
}
.theCover img {
border: 1px solid #ccc;
}
.coverDescription h2 {
padding-top: 0 !important;
background: transparent !important;
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
color: #333;
}
.coverDescription h3 {
margin-bottom: 3px;
color: #000 !important;
}
.coverDescription ul {
margin: 0;
padding: 0 0 0 25px !important;
}
.coverDescription li {
font-size: .9em;
list-style-image: url(/templates/jsp/_style2/_achs/images/bullet1-trans.gif);
}
.largeCoverCaption {
margin: 0 10px;
font-size: .875em;
line-height: 1.6em;
}
#textArea .largeCoverCaption p {
font-size: 1em;
margin-left: 0;
}
/* === END OF COVER ART GALLERY STYLES === */
/* === START OF ONLINE NEWS STYLES === */
body.newsStory #articleBody {
margin: 20px 0 15px;
}
body.newsIndex #textArea {
float: left;
padding-bottom: 10px;
}
#onlineNewsNav {
position: absolute;
top: 2px;
right: 0;
width: 220px;
height: 29px;
}
#onlineNewsNav a {
position: absolute;
height: 29px;
background: url(/templates/jsp/_style2/_achs/images/onlineNewsNav.gif);
}
#onlineNewsNav .newsLatest {
left: 0;
width: 80px;
background-position: 0 0;
}
#onlineNewsNav .newsArchive {
left: 80px;
width: 55px;
background-position: -80px 0;
}
#onlineNewsNav .newsRSS {
left: 135px;
width: 85px;
background-position: -135px 0;
}
#onlineNewsNav .newsLatest:hover {
background-position: 0 -29px;
}
#onlineNewsNav .newsArchive:hover {
background-position: -80px -29px;
}
#onlineNewsNav .newsRSS:hover {
background-position: -135px -29px;
}
#onlineNewsNav span {
margin-left: -5000px;
}
body.newsIndex #sideCol {
width: 210px;
margin-right: 7px;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#newsIndexContent {
float: left;
width: 563px;
margin: 0 0 0 7px;
border: 1px solid #b6b6e1;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#featuredItem {
margin: 0 0 15px;
padding: 7px;
background: #f2fced;
}
#newsIndexContent h4 {
margin: 0;
padding: 0;
font-size: .75em;
font-weight: normal;
}
#newsIndexContent h3 {
margin: 0 0 5px;
padding: 0;
font-size: .95em;
}
#newsIndexContent h2 {
margin: 0 0 7px;
padding: 0;
}
#newsIndexContent p {
margin: 0;
padding: 0;
font-size: .8em;
line-height: normal;
}
#featuredItem p {
text-align: justify;
}
img#featuredImage {
float: right;
margin: 0 0 0 15px;
}
#mostRecentItems {
clear: both;
float: left;
width: 347px;
margin: 0 0 0 7px;
padding-bottom: 10px;
}
#mostRecentItems .newsItem {
float: left;
width: 100%;
margin: 0 0 25px;
}
img.newsImage {
float: left;
margin: 0 7px 0 0;
}
#archiveList {
float: right;
width: 180px;
margin: 0 7px 0 0;
padding-left: 7px;
border-left: 1px solid #a3cdb7;
}
#archiveList ul {
margin: 0 0 15px;
padding: 0;
}
#archiveList ul li {
margin: 0 0 5px 15px;
padding: 0;
list-style-image: url(/templates/jsp/_style2/_achs/images/bullet1-trans.gif);
font-size: .8em;
}
#archiveList ul li a {
text-decoration: none;
}
#archiveList ul li a:hover {
text-decoration: underline;
}
#textArea #sideCol p {
font-size: 1em;
margin: 0 0 7px;
}
body.newsIndex #sideCol .sideColBox ul li {
margin-bottom: 7px;
}
body.newsIndex #sideCol .sideColBox ul li a {
text-decoration: none;
}
body.newsIndex #sideCol .sideColBox ul li a:hover {
text-decoration: underline;
}
body.newsIndex h1 {
margin-bottom: 3px;
font-size: 1em;
}
#browseMonth {
float: left;
margin: 5px 0 30px 10px;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#browseMonth a {
float: left;
margin: 0 5px 0 0;
padding: 0 2px;
border: 1px solid #369;
background: #d8e5ee;
font-size: .7em;
line-height: 1.4em;
text-decoration: none;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#browseMonth a:hover {
background: #369;
color: #fff;
}
#archiveItems .newsItem {
clear: both;
float: left;
width: 773px;
margin: 0 10px 15px;
padding: 0 0 7px;
border: 1px solid #bfd3e3;
background: #fff url(/templates/jsp/_style2/_achs/images/gradient.gif) repeat-x;
font-size: .875em;
}
#archiveItems .newsItem .newsImage {
float: left;
margin: 7px 7px 0 10px;
border: 1px solid #ccc;
}
#archiveItems .newsItem h4 {
margin: 7px 0 0 0 10px;
font-size: .875em;
}
#archiveItems .newsItem h2 {
margin: 0 0 0 10px;
padding: 0;
font-size: 1.1em;
}
#archiveItems .newsItem h2 a {
color: #35659a;
text-decoration: none;
}
#archiveItems .newsItem h2 a:hover {
text-decoration: underline;
}
#archiveItems .newsItem p {
font-size: .9em;
margin: 3px 10px 0;
line-height: normal;
}
#articleContent #articleBody h2.newsRelatedHead {
display: block;
width: auto;
margin-top: 30px;
background: #666;
color: #fff;
padding: 2px 0 2px 7px;
}
ul.newsRelated {
margin: 7px 0 0;
padding: 0;
}
ul.newsRelated li {
margin: 0 0 7px 17px;
padding: 0;
list-style-image: url(/templates/jsp/_style2/_achs/images/bullet1-trans.gif);
font-size: 1.1em;
}
/* === END OF ONLINE NEWS STYLES === */
/* === START OF RSS ALERT PAGE STYLES === */
#feedList {
float: left;
}
div.listCol {
float: left;
}
#content ul.rssList {
margin: 5px 20px 30px 10px;
padding: 0;
list-style: none;
}
#content ul.rssList li {
margin: 0 0 5px;
padding: 0;
}
ul.rssList li a {
display: block;
margin: 0 0 10px;
padding: 0 0 0 20px;
text-decoration: none;
font-size: .875em;
background: url(/templates/jsp/_style2/_achs/images/rss.png) no-repeat;
}
ul.rssList li a:hover {
text-decoration: underline;
}
#aboutRSS {
float: right;
width: 220px;
margin: 0 5px 0 0;
background: #eee;
font-size: .9em;
}
#aboutRSS ul {
border: 0;
padding: 0;
}
#aboutRSS ul li {
margin: 0 0 3px 17px;
padding: 0;
list-style-image: url(/templates/jsp/_style2/_achs/images/bullet1-trans.gif);
}
#aboutRSS h2 {
margin: 0;
padding: 7px 10px;
background: #369;
color: #fff;
}
#aboutRSS h3 {
color: #000;
}
/* === END OF RSS ALERT PAGE STYLES === */
/* === START OF CITATION DOWNLOAD STYLES === */
#downloadCitation {
margin: -10px 0 0 10px;
}
#downloadCitation h2 {
font-size: .9em !important;
color: #000 !important;
}
#downloadCitation label {
display: block;
margin: 0 0 0 30px;
font-size: .875em;
}
#downloadCitation select {
margin: 0 0 0 30px;
}
label#quickImport {
margin: 20px 0 0 10px;
}
#downloadCitation #submit {
margin: 15px 0 15px 10px;
}
#downloadCitList li {
margin-bottom: 7px;
font: .875em Arial, Helvetica, sans-serif;
}
#downloadCitList h4 {
margin: 0 !important;
padding: 0 !important;
font: bold 1em Arial, Helvetica, sans-serif !important;
}
/* === END OF CITATION DOWNLOAD STYLES === */
/* === START OF EMAIL A COLLEAGUE STYLES === */
#emailLink p {
margin: 0 0 5px 10px;
}
#emailLink h5 {
margin: 0 0 30px 40px;
}
#emailLink div {
clear: left;
margin: 0 0 10px 20px;
font-size: .875em;
}
#emailLink div span {
float: left;
width: 10em;
margin: 0 10px 0 0;
text-align: right;
}
#emailLink label {
display: block;
margin: 15px 0 0 30px;
}
#emailLink label * {
float: none !important;
vertical-align: middle;
}
#emailLink #submit {
margin: 0 0 30px 30px;
}
/* === END OF EMAIL A COLLEAGUE STYLES === */
/* === START OF ARRC/LRC STYLES === */
#arrcLogo, #lrcLogo {
margin: 15px 0 15px 15px;
}
body.arrc #content-wrap, body.lrc #content-wrap {
width: 685px;
}
body.arrc #content, body.arrc #contentMain, body.lrc #content, body.lrc #contentMain {
width: 680px;
}
body.arrc #textArea, body.lrc #textArea {
width: 678px;
min-height: 32em;
}
body.arrc #rightColumn, body.lrc #rightColumn {
width: 300px;
}
#arrcJournalInfo * {
font-size: 1em;
color: #000;
}
#arrcJournalInfo select {
width: 245px;
}
#arrcJournalInfo input {
position: relative;
top: 4px;
left: 5px;
}
body.arrc h3, body.lrc h3 {
margin: 0 0 10px;
line-height: normal;
}
body.arrc #content ul, body.lrc #content ul {
margin: 0 0 1em;
padding: 0;
}
body.arrc #content ul li, body.lrc #content ul li {
margin: 0 0 2px 25px;
padding: 0;
list-style-image: url(/templates/jsp/_style2/_achs/images/bullet1-trans.gif);
}
.arrcHPBox, .lrcHPBox {
position: relative;
clear: both;
float: left;
width: 100%;
margin: 0 0 12px;
padding: 0 0 15px;
background: #fff;
border-bottom: 1px solid #b6b6e1;
}
.arrcHPBox .leftCol, .lrcHPBox .leftCol {
float: left;
width: 325px;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
.arrcHPBox .rightCol, .lrcHPBox .rightCol {
float: right;
width: 325px;
}
.leftBorder {
padding-left: 15px;
border-left: 1px solid #ccc;
}
body.arrc #textArea .arrcHPBox h2, body.lrc #textArea .lrcHPBox h2 {
margin: 7px 7px 7px 10px;
padding: 0;
}
body.arrc .arrcHPBox h3, body.lrc .lrcHPBox h3 {
margin: 3px 7px;
font-size: .8em;
color: #000;
}
body.arrc .arrcHPBox p, body.lrc .lrcHPBox p {
margin: 2px 7px;
font-size: .8em;
line-height: normal;
}
body.arrc .arrcHPBox ul.padBottom40, body.lrc .lrcHPBox ul.padBottom40 {
padding-bottom: 40px !important;
}
body.arrc .arrcHPBox li, body.lrc .lrcHPBox li {
font-size: .8em;
}
.arrcHPBox img#ACSphoenix, .lrcHPBox img#ACSphoenix {
position: absolute;
top: 2.8em;
right: 50px;
}
.arrcHPBox img#coExcellence, .lrcHPBox img#coExcellence {
position: absolute;
bottom: 10px;
right: 50px;
}
.arrcHPBox img.cover, .lrcHPBox img.cover {
float: left;
margin: 5px 10px 7px 7px;
border: 1px solid #ccc;
}
.arrcHPBox .featured, .lrcHPBox .featured {
position: relative;
width: 325px;
height: 176px;
margin: 7px 0 0 10px;
}
.featured * {
line-height: normal;
}
#who {
position: absolute;
top: 10px;
right: 7px;
width: 155px;
background: #2f6a96;
}
#who h1, #who h2 {
margin: 7px 3px 3px 7px !important;
font-size: .75em;
font-weight: normal;
color: #fff;
}
#who h2 {
margin: 0 3px 0 7px;
}
#who img {
margin: 7px 3px;
}
#libSignIn {
position: relative;
display: block;
margin: 15px 0 0;
padding: 0;
height: 1%;
}
#libSignIn label {
display: block;
margin: 0 0 7px;
}
#libSignIn label span {
float: left;
width: 5em;
margin: 5px 7px 0 0;
text-align: right;
}
#libSignIn label input {
width: 125px;
margin: 0 56px 0 0;
color: #000;
font-size: .9em;
}
#libSignIn .signIn {
position: absolute;
bottom: 6px;
right: 0;
color: #000;
font-size: .9em;
}
body.lrc a#livewire {
display: block;
margin: 0 0 10px;
}
body.lrc a#livewireSignup {
float: right;
margin: 7px 7px 10px;
font-size: .7em;
}
body.lrc div.clear {
clear: both;
margin: 0 0 0 7px;
padding: 10px 0 0;
font-size: .9em;
}
#newsletterHead {
padding: 0 0 7px;
background: #f3f7fa;
border-bottom: 1px solid #ccc;
}
#newsletterHead h2 {
margin: 0 0 0 7px;
padding: 7px 0 0;
font-size: .8em;
color: #000;
}
#newsletterLogo, #lwlogo {
float: left;
margin: 7px 7px 0;
}
.newsletterRSS {
margin: 7px 0 12px;
}
#newsletterHome {
clear: both;
}
#newsletterHome h2 a {
text-decoration: none;
}
#newsletterHome h2 a:hover {
text-decoration: underline;
}
#newsletterFeature {
clear: both;
margin: 0;
padding: 0 0 10px;
border-bottom: 2px solid #e3e3e3;
background: #f8f8f8;
}
#newsletterFeature h4 {
margin: 0 0 0 10px;
padding-top: 10px;
color: #666;
font-size: .8em;
font-weight: normal;
}
#newsletterFeature h2 {
margin: 0 0 0 10px;
padding: 0;
}
#newsletterFeature p {
margin: 5px 0 0 10px !important;
font-size: .8em;
}
#newsletterFeature #featureImage {
float: left;
margin: 10px 10px 0;
}
.newsSection {
clear: left;
margin: 25px 10px 10px;
}
.newsSection h3 {
display: block;
margin: 0 0 10px !important;
padding: 0 0 3px !important;
border-bottom: 1px solid #369;
font: bold 1em Arial, Helvetica, sans-serif;
color: #00497e;
}
.newsSection .story {
clear: left;
float: left;
width: 95%;
margin: 0 10px 25px 0;
}
.newsSection h2 {
margin: 0 !important;
padding: 0 !important;
}
.newsSection p {
margin: 0 !important;
}
.newsSection img.storyImage {
float: left;
margin: 0 7px 0 0;
border: 1px solid #ccc;
}
#newsletterStory {
float: left;
width: 430px;
padding: 0 0 7px;
margin: 7px 0 0 10px;
}
#newsletterStory h1 {
margin: 10px 0 0;
padding: 0 0 10px;
border-bottom: 1px solid #c4d6e2;
font: bold 1.1em Arial, Helvetica, sans-serif;
}
#newsletterStory p {
margin: 10px 0 0;
}
#newsletterBriefs, #relatedTitles {
float: right;
width: 200px;
margin: 17px 7px 0 0;
border: 1px solid #b6b6e1;
}
#relatedTitles {
width: 300px;
margin-top: 0;
}
#newsletterBriefs h3, #relatedTitles h3 {
margin: 2px;
padding: 3px 7px;
background: #e1ecf2;
color: #01487e;
}
#newsletterBriefs h4 {
margin-top: 15px;
color: #01487e;
font-size: .8em;
}
#newsletterBriefs ul, #relatedTitles ul {
margin-bottom: 7px !important;
font-size: .875em;
}
#relatedTitles ul {
margin-left: 0 !important;
padding-left: 20px;
}
#relatedTitles li {
margin: 0 0 2px 0;
padding: 0;
list-style-image: url(/templates/jsp/_style2/_achs/images/bullet1-trans.gif);
}
/* === END OF ARRC/LRC STYLES === */
/* === START OF LIBRARIAN ADMIN STYLES === */
body.admin #textArea {
min-height: 22em;
}
body.admin #textArea h4 {
margin: 10px 10px 0;
padding: 0;
}
body.admin #content ul {
margin-bottom: 10px;
}
#libAdminLogo {
margin: 15px 0 15px 0;
}
.instLogo {
float: right;
margin: 3px 0 40px 0;
}
.instLogo img {
padding: 5px;
background: #fff;
border: 1px solid #ccc;
}
.dashItem {
clear: both;
margin: 0 0 30px;
}
.dashItem img {
float: left;
margin: 0 10px;
}
#accountSelect {
float: right;
margin: 4px 7px 0;
padding: 0;
text-align: right;
}
#accountSelect span {
font-weight: bold;
font-size: .8em;
}
#accountSelect form {
font-size: .9em;
}
table#journalSubs {
width: 605px;
margin: 10px auto 20px;
padding: 0;
font: .8em Arial, Helvetica, sans-serif;
border: 1px solid #ccc;
border-bottom: 0;
}
table#journalSubs th .jTitle, table#journalSubs th .expiration {
font-weight: bold;
}
table#journalSubs th, table#journalSubs td {
padding: 5px;
border-bottom: 1px solid #ccc;
}
table#journalSubs .jTitle {
width: 425px;
}
table#journalSubs .expiration {
width: 160px;
text-align: right;
}
#content ul#holdings {
margin: 0 0 20px 20px;
}
#textArea .tokenNotice {
float: left;
margin: 0 0 7px 10px;
padding: 3px;
background: #eee;
border: 1px solid #ccc;
font: .875em Arial, Helvetica, sans-serif;
color: #29754e;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#tokenEntry {
clear: left;
margin: 0 0 10px 0;
}
#tokenEntry input {
margin-left: 10px;
}
body.admin #content ul.reportTypes {
margin: 0 10px 20px 20px;
}
table#reports {
width: 655px;
margin: 15px auto 30px;
border: 1px solid #ccc;
font-size: .875em;
}
table#reports td, table#reports th {
padding: 3px 0;
padding: 5px;
}
table#reports th {
border-bottom: 1px solid #ccc;
}
table#reports .check {
width: 30px;
text-align: center;
}
table#reports .desc {
width: 330px;
}
#usageReports label {
margin: 0 0 0 10px;
font-size: .875em;
}
#usageReports label * {
vertical-align: middle;
}
#usageReports div {
margin: 0 0 10px 20px;
}
#usageReports label {
margin-left: 30px;
}
#usageReports #reqReport {
margin-left: 30px;
}
body.admin div.error, body.user div.error {
margin: 0 10px;
padding: 0;
background: #eee;
border: 1px solid #500;
font-size: .875em;
}
body.user div.error {
margin: 0 10px 15px;
}
.error * {
color: #500 !important;
font-family: Arial, Helvetica, sans-serif !important;
}
.success {
margin: 0 10px;
background: #eee;
border: 1px solid #29754e;
font-size: .875em;
}
.success * {
color: #29754e;
}
body.admin div.error h2, body.user div.error h2, body.user div.success h2 {
margin-top: 7px !important;
}
table#ipTable {
width: 90%;
margin: 7px 0 15px 0;
padding: 0;
font: .9em Arial, Helvetica, sans-serif;
}
table#ipTable th, table#ipTable td {
padding: 0 10px 10px 30px;
vertical-align: top;
}
#textArea .emailNotice {
float: left;
margin: 15px 0 7px 10px;
padding: 3px;
background: #eee;
border: 1px solid #ccc;
font: .875em Arial, Helvetica, sans-serif;
color: #29754e;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#usageReports .emailNotice{
float:none;
}
form#shibboleth {
margin: 20px 0;
}
form#shibboleth input {
margin: 0 0 10px 10px;
}
form#shibboleth h5 {
margin-top: 15px;
font-weight: normal;
}
form#cobrandMessage {
margin: 0 0 30px 0;
}
form#cobrandMessage div {
margin: 0 0 0 7px;
font: italic .8em Arial, Helvetica, sans-serif;
}
form#cobrandMessage #cobrandText {
width: 90%;
margin: 0 0 10px 7px;
}
form#cobrandMessage input {
margin-left: 7px;
}
form#cobrandLogo {
margin: 0 0 10px 0;
}
form#cobrandLogo #submit {
margin: 15px 0 10px 10px;
}
form#linkServer div {
margin: 10px 0 30px 10px;
}
form#linkServer span {
font-size: .875em;
}
form#linkServer div div {
margin: 0 0 15px;
}
form#linkServer div.imgUpload, form#cobrandLogo div.imgUpload {
margin: 15px 0 0 30px;
}
div.imgUpload * {
vertical-align: middle;
font-size: .875em;
}
div.imgUpload .instLogo {
float: none;
margin: 0;
}
#textLink, #imgLink {
margin: 0 2px 0 10px;
}
#openURLimg img {
margin: 0 0 0 15px;
vertical-align: middle;
}
table#admins {
margin: 7px 10px 25px;
padding: 0;
font-size: .875em;
border: 1px solid #ccc;
border-bottom: 0;
}
table#admins td {
padding: 3px;
border-bottom: 1px solid #ccc;
}
table#admins .name, table#admins .email {
width: 290px;
}
form#addAdmin .emailNotice {
margin: 0 10px 7px;
}
form#addAdmin div {
clear: left;
margin: 7px 10px 15px;
font-size: .875em;
}
/* === END OF LIBRARIAN ADMIN STYLES === */
/* === START OF PROFILE TEMPLATE STYLES === */
body.register #content-wrap {
width: 100%;
}
#signInContent {
float: left;
width: 968px;
min-height: 360px;
margin: 0 5px;
padding: 10px;
background: #fff;
border: 1px solid #9eb7cb;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#signInContent .right {
float: right;
width: 310px;
margin: 0 0 0 40px;
border: 1px solid #000;
font-size: .8em;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
form#signInBox {
float: left;
width: 100%;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
form#signInBox #signInHead {
height: 50px;
margin: 0 0 15px;
padding: 5px 0;
border-bottom: 1px solid #000;
}
form#signInBox #acsLogo {
float: right;
margin: 0pt 45px 0pt 0pt;
}
form#signInBox h1 {
float: right;
margin: 0 10px;
line-height: 50px;
}
form#signInBox label {
float: left;
width: 100%;
margin: 10px 0 0;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
form#signInBox label span {
float: left;
width: 6em;
margin: 0 7px;
font-weight: bold;
text-align: right;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
form#signInBox .error {
float: left;
margin: 7px 20px 0;
color: #500 !important;
font-family: Arial, Helvetica, sans-serif !important;
}
form#signInBox #actions {
float: left;
width: 100%;
margin: 15px 0 0;
text-align: center;
}
form#signInBox #acsID, form#signInBox #password {
width: 150px;
margin: 0;
}
form#signInBox #submit {
margin-right: 15px;
}
ul#signInLinks {
float: right;
margin: 10px 0 5px;
padding: 0;
text-align: right;
}
ul#signInLinks li {
margin: 0 7px 0 0;
padding: 0;
list-style: none !important;
}
#signInContent .aboutID {
margin: 25px 0 0;
}
#signInContent ul {
margin: 5px 0 10px 10px;
padding: 0;
}
#signInContent ul li {
margin: 0 7px 0 17px;
list-style-image: url(/templates/jsp/_style2/_achs/images/bullet1-trans.gif);
font-size: .875em;
}
#signInContent p {
font-size: .875em;
}
/* === END OF PROFILE REGISTRATION STYLES === */
/* === START OF PROFILE STYLES === */
body.user h1 {
margin: 15px 0 20px 10px !important;
font-size: 1.1em;
}
#registerAlerts h3 {
clear: left;
margin: 10px 0 0 10px;
}
#registerAlerts ul.jList {
display: block;
margin: 0 0 25px 10px;
padding: 0;
list-style: none;
}
#registerAlerts div {
margin: 0 0 15px 10px;
}
#registerAlerts span {
font-size: .875em;
}
#registerAlerts div.type {
margin: 7px 30px 25px 50px;
}
#registerAlerts div.type div {
display: inline;
margin: 7px 0 0 7px;
}
#registerAlerts div.type input {
margin-right: 0;
}
#registerAlerts div.type label {
margin-right: 20px;
}
#registerAlerts #submit {
clear: both;
float: left;
margin: 20px 0 15px 10px;
}
form#citAlertArticles, form#favArticles {
padding-bottom: 20px;
}
div.savedSearch {
position: relative;
float: left;
width: 805px;
margin: 0 10px 15px;
padding: 0 0 7px;
background: #ffffe4;
border: 1px solid #ccc;
}
div.savedSearch h5 {
width: 490px;
margin: 7px 0 10px;
padding: 0;
}
div.savedSearch .buttons {
position: absolute;
top: 0;
right: 0;
}
div.savedSearch a.button {
float: right;
margin: 7px 5px 0 0;
padding: 1px 2px 0;
border: 1px solid #369;
font-size: .875em;
line-height: 1.4em;
text-decoration: none;
}
div.savedSearch a img {
float: right;
margin: 7px 10px 0 0;
}
div.savedSearch a.button:hover {
background: #369;
color: #fff;
}
div.savedSearch div {
margin: 0 0 0 10px;
font-size: .875em;
}
form#articleSort {
margin: 0 0 20px 10px;
font-size: .8em;
}
body.user .articleBox {
font-size: .875em;
}
body.user #textArea .articleBox h2 {
margin: 0;
}
.articleOptions a.removeArticle {
width: 93px;
height: 18px;
background: url(/templates/jsp/_style2/_achs/images/removeArticle.png);
}
.articleOptions a.removeFavorites {
width: 130px;
height: 18px;
background: url(/templates/jsp/_style2/_achs/images/removeFav.png);
}
/* -- Cart styles -- */
#purchasePage {
margin: 0 70px;
}
#purchasePage h1 {
color: #000;
}
#progressBar {
width: 100%;
margin: 0;
padding: 0;
text-align: center;
}
#purchasePage ul li {
list-style-image: url(/templates/jsp/_style2/_achs/images/bullet1-trans.gif);
}
#cartItems {
margin-top: 30px;
}
#cartItems .articleBox {
padding-bottom: 7px;
}
#cartItems #submit, #paymentForm #submit, #finalizeForm #submit {
margin: 20px 0 0 10px;
}
#paymentForm {
display: block;
margin-top: 30px;
font-size: .8em;
}
#paymentForm h3 {
font-size: 1.2em;
margin: 30px 0 10px;
}
#paymentForm p {
font-size: 1em;
}
#paymentForm div {
clear: both;
margin: 0 0 7px;
}
#paymentForm label {
float: left;
width: 12em;
margin: 0 15px 7px 0;
font-weight: bold;
text-align: right;
}
#paymentForm #termsAgreement {
margin: 15px 0;
padding: 10px 10px 0 10px;
border: 1px solid #369;
}
#paymentForm #termsAgreement * {
margin-left: 0;
}
#paymentForm #termsAgreement label {
float: none;
}
#paymentSection, #productSection {
clear: right;
margin: 7px 10px;
padding: 15px 0 7px;
border-top: 1px solid #ccc;
}
#paymentSection h4, #productSection h4 {
margin: 0 0 7px;
padding: 0;
}
#paymentSection div {
margin: 0 0 0 10px;
font-size: .8em;
}
a.editLink {
float: right;
margin: 0 0 10px;
}
#productSection ul {
clear: right;
margin: 0;
padding: 0;
list-style: none;
}
#productSection ul li {
margin: 0 0 15px;
padding: 0;
font-size: .875em;
font-family: Arial, Helvetica, sans-serif;
}
#productSection h5 {
margin: 0;
padding: 0;
font-family: Arial, Helvetica, sans-serif;
font-size: 1em;
}
#productSection li div.rmButton {
float: right;
margin: 0 0 0 7px;
}
#productSection li div.price {
float: right;
width: 6em;
margin: 5px 0 0 15px;
padding: 0 0 0 7px;
text-align: right;
}
#totalPrice {
clear: right;
float: right;
margin: 0;
padding: 0;
font: bold .875em Arial, Helvetica, sans-serif;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
form#cartItems #totalPrice {
margin: 0 105px 0 0;
}
/* === END OF PROFILE STYLES === */
/* === START OF HELP STYLES === */
body.help #content-wrap {
width: 765px;
}
body.help #content, body.help #contentMain {
width: 760px;
}
body.help #textArea {
width: 758px;
min-height: 25em;
}
#helpMain {
clear: both;
display: block;
margin: 0 0 0 2px;
padding: 0 0 0 192px;
background: #fff url(/templates/jsp/_style2/_achs/images/helpnav-bg.gif) repeat-y;
min-height: 25em;
}
#helpMain ol {
margin: 10px 0 0;
padding: 0 0 0 32px;
}
#helpMain ol li {
margin: 0;
padding: 0 0 7px;
font-size: .875em;
}
#helpMain ol a {
text-decoration: none;
}
#helpMain ol a:hover {
text-decoration: underline;
}
#helpNav {
position: absolute;
top: 42px;
left: 3px;
width: 175px;
margin: 0;
padding: 0;
border-left: 1px solid #b6b6e1;
border-right: 1px solid #b6b6e1;
background: #d1e6f6;
font-family: Arial, Helvetica, sans-serif;
}
#helpNav h2 {
margin: 0;
padding: 5px 3px 5px 5px;
background: #369;
color: #fff !important;
font-size: .75em;
line-height: normal;
}
#helpNav ul {
margin: 0;
padding: 0;
list-style: none;
}
#helpNav ul li {
display: block;
border-top: 1px solid #fff;
border-bottom: 1px solid #aebedc;
font-size: .95em;
}
#helpNav ul li a {
display: block;
text-decoration: none;
padding: 2px 0 1px;
}
#helpNav ul li a:hover {
background: #fff;
}
#helpNav ul li a span {
display: block;
margin: 0 2px 0 5px;
font-size: .75em;
color: #369;
}
#textArea #helpMain h1 {
margin: 0 0 20px;
font-size: 1em;
}
#textArea #helpMain p {
margin-left: 0;
}
#searchHelp {
margin: 15px 3px 0 3px;
font-size: .75em;
}
#searchHelp input {
width: 150px;
margin: 0 0 5px;
}
#searchHelp #searchHelpSubmit {
width: auto;
}
body.help #rightColumn {
width: 220px;
padding: 0 0 35px;
background: #fff;
border: 1px solid #aebedc;
min-height: 25em;
}
body.help #rightColumn h2 {
margin: 2px 2px 10px 2px;
padding: 5px 7px;
background: url(/templates/jsp/_style2/_achs/images/h2-bg2.gif) repeat-x;
}
body.help #rightColumn h3 {
margin: 7px 7px 5px 7px;
font-size: .875em;
}
body.help #rightColumn h4 {
margin: 7px 7px 0 7px;
padding: 0;
font-size: .75em;
}
body.help #rightColumn div {
margin: 1px 7px;
font-size: .75em;
line-height: normal;
}
body.help #rightColumn div.marginTop {
margin-top: 10px;
}
body.help #rightColumn hr {
display: block;
height: 1px;
margin: 12px 7px;
padding: 0;
background: #aebedc;
border: 0;
}
/* === END OF HELP STYLES === */
/* === DROPDOWN MENU STYLES BELOW === */
#nav {
display: block;
position: absolute;
top: 0;
left: 0;
width: 1000px;
height: 30px;
margin: 0;
padding: 0;
list-style: none;
}
#nav li {
position: relative;
float: left;
margin: 0;
padding: 0;
text-align: center;
}
/* === BEGIN PUBS MENUS === */
#navPubsHome a, #navJournals a, #navBooks a, #navAuthors a, #navLibrarians a, #navMembers a, #navAboutUs a, #navAlerts a, #navHelp a {
display: block;
height: 30px;
margin: 0;
padding: 0;
background: transparent url(/templates/jsp/_style2/_achs/images/pubsNav.gif) no-repeat;
}
/* bg image initial states */
#navPubsHome a {
width: 50px;
background-position: 0 0;
}
#navJournals a {
width: 96px;
background-position: -50px 0;
}
#navBooks a {
width: 63px;
background-position: -146px 0;
}
#navAuthors a {
width: 146px;
background-position: -209px 0;
}
#navLibrarians a {
width: 85px;
background-position: -355px 0;
}
#navMembers a {
width: 105px;
background-position: -440px 0;
}
#navAboutUs a {
width: 84px;
background-position: -545px 0;
}
#navAlerts a {
width: 74px;
background-position: -629px 0;
}
#navHelp a {
width: 57px;
background-position: -703px 0;
}
/* bg image hover states... all .over classes are for IE */
#navPubsHome:hover a, #navPubsHome.over a {
background-position: 0 -30px;
}
#navJournals:hover a, #navJournals.over a {
background-position: -50px -30px;
}
#navBooks:hover a, #navBooks.over a {
background-position: -146px -30px;
}
#navAuthors:hover a, #navAuthors.over a {
background-position: -209px -30px;
}
#navLibrarians:hover a, #navLibrarians.over a {
background-position: -355px -30px;
}
#navMembers:hover a, #navMembers.over a {
background-position: -440px -30px;
}
#navAboutUs:hover a, #navAboutUs.over a {
background-position: -545px -30px;
}
#navAlerts:hover a, #navAlerts.over a {
background-position: -629px -30px;
}
#navHelp:hover a, #navHelp.over a {
background-position: -703px -30px;
}
/* === END PUBS MENUS === */
/* === BEGIN JOURNAL DROPDOWN MENUS === */
#navJournalHome a, #navBrowse a, #navASAP a, #navCurrent a, #navMultimedia a, #navOnlineNews a, #navSubmission a, #navSubscription a, #navAbout a {
display: block;
height: 30px;
margin: 0;
padding: 0;
background: transparent url(/templates/jsp/_style2/_achs/images/journalNav.gif) no-repeat;
}
/* bg image initial states */
#navJournalHome a {
width: 49px;
background-position: 0 0;
}
#navBrowse a {
width: 139px;
background-position: -49px 0;
}
#navASAP a {
width: 107px;
background-position: -188px 0;
}
#navCurrent a {
width: 102px;
background-position: -295px 0;
}
#navMultimedia a {
width: 92px;
background-position: -397px 0;
}
#navOnlineNews a {
width: 95px;
background-position: -489px 0;
}
#navSubmission a {
width: 148px;
background-position: -584px 0;
}
#navSubscription a {
width: 99px;
background-position: -732px 0;
}
#navAbout a {
width: 87px;
background-position: -831px 0;
}
/* bg image hover states... all .over classes are for IE */
#navJournalHome:hover a, #navJournalHome.over a {
background-position: 0 -30px;
}
#navBrowse:hover a, #navBrowse.over a {
background-position: -49px -30px;
}
#navASAP:hover a, #navASAP.over a {
background-position: -188px -30px;
}
#navCurrent:hover a, #navCurrent.over a {
background-position: -295px -30px;
}
#navMultimedia:hover a, #navMultimedia.over a {
background-position: -397px -30px;
}
#navOnlineNews:hover a, #navOnlineNews.over a {
background-position: -489px -30px;
}
#navSubmission:hover a, #navSubmission.over a {
background-position: -584px -30px;
}
#navSubscription:hover a, #navSubscription.over a {
background-position: -732px -30px;
}
#navAbout:hover a, #navAbout.over a {
background-position: -831px -30px;
}
/* === END JOURNAL DROPDOWN MENUS === */
/* === BEGIN ARRC MENUS === */
#navArrcHome a, #navSubReview a, #navBenefits a, #navCopyPerm a, #navPubTools a, #navNewsAnnounce a {
display: block;
height: 30px;
margin: 0;
padding: 0;
background: transparent url(/templates/jsp/_style2/_achs/images/arrcNav.gif) no-repeat;
}
/* bg image initial states */
#navArrcHome a {
width: 50px;
background-position: 0 0;
}
#navSubReview a {
width: 147px;
background-position: -50px 0;
}
#navBenefits a {
width: 141px;
background-position: -197px 0;
}
#navCopyPerm a {
width: 171px;
background-position: -338px 0;
}
#navPubTools a {
width: 121px;
background-position: -509px 0;
}
#navNewsAnnounce a {
width: 166px;
background-position: -630px 0;
}
/* bg image hover states... all .over classes are for IE */
#navArrcHome:hover a, #navArrcHome.over a {
background-position: 0 -30px;
}
#navSubReview:hover a, #navSubReview.over a {
background-position: -50px -30px;
}
#navBenefits:hover a, #navBenefits.over a {
background-position: -197px -30px;
}
#navCopyPerm:hover a, #navCopyPerm.over a {
background-position: -338px -30px;
}
#navPubTools:hover a, #navPubTools.over a {
background-position: -509px -30px;
}
#navNewsAnnounce:hover a, #navNewsAnnounce.over a {
background-position: -630px -30px;
}
/* === END ARRC MENUS === */
/* === BEGIN LRC MENUS === */
#navLrcHome a, #navLrcProd a, #navLrcSubs a, #navLrcLicensing a, #navLrcTools a, #navLrcLivewire a, #navLrcContact a {
display: block;
height: 30px;
margin: 0;
padding: 0;
background: transparent url(/templates/jsp/_style2/_achs/images/lrcNav.gif) no-repeat;
}
/* bg image initial states */
#navLrcHome a {
width: 50px;
background-position: 0 0;
}
#navLrcProd a {
width: 79px;
background-position: -50px 0;
}
#navLrcSubs a {
width: 157px;
background-position: -129px 0;
}
#navLrcLicensing a {
width: 147px;
background-position: -286px 0;
}
#navLrcTools a {
width: 121px;
background-position: -433px 0;
}
#navLrcLivewire a {
width: 145px;
background-position: -554px 0;
}
#navLrcContact a {
width: 110px;
background-position: -699px 0;
}
/* bg image hover states... all .over classes are for IE */
#navLrcHome:hover a, #navLrcHome.over a {
background-position: 0 -30px;
}
#navLrcProd:hover a, #navLrcProd.over a {
background-position: -50px -30px;
}
#navLrcSubs:hover a, #navLrcSubs.over a {
background-position: -129px -30px;
}
#navLrcLicensing:hover a, #navLrcLicensing.over a {
background-position: -286px -30px;
}
#navLrcTools:hover a, #navLrcTools.over a {
background-position: -433px -30px;
}
#navLrcLivewire:hover a, #navLrcLivewire.over a {
background-position: -554px -30px;
}
#navLrcContact:hover a, #navLrcContact.over a {
background-position: -699px -30px;
}
/* === END LRC MENUS === */
/* === BEGIN LIB ADMIN MENUS === */
#navLibAdminHome a, #navLibAdminSubs a, #navLibAdminUsage a, #navLibAdminAccess a, #navLibAdminCobrand a, #navLibAdminLinkres a, #navLibAdminAdmin a {
display: block;
height: 30px;
margin: 0;
padding: 0;
background: transparent url(/templates/jsp/_style2/_achs/images/libAdminNav.gif) no-repeat;
}
/* bg image initial states */
#navLibAdminHome a {
width: 50px;
background-position: 0 0;
}
#navLibAdminSubs a {
width: 102px;
background-position: -50px 0;
}
#navLibAdminUsage a {
width: 104px;
background-position: -152px 0;
}
#navLibAdminAccess a {
width: 97px;
background-position: -256px 0;
}
#navLibAdminCobrand a {
width: 90px;
background-position: -353px 0;
}
#navLibAdminLinkres a {
width: 97px;
background-position: -443px 0;
}
#navLibAdminAdmin a {
width: 106px;
background-position: -540px 0;
}
/* bg image hover states... all .over classes are for IE */
#navLibAdminHome:hover a, #navLibAdminHome.over a {
background-position: 0 -30px;
}
#navLibAdminSubs:hover a, #navLibAdminSubs.over a {
background-position: -50px -30px;
}
#navLibAdminUsage:hover a, #navLibAdminUsage.over a {
background-position: -152px -30px;
}
#navLibAdminAccess:hover a, #navLibAdminAccess.over a {
background-position: -256px -30px;
}
#navLibAdminCobrand:hover a, #navLibAdminCobrand.over a {
background-position: -353px -30px;
}
#navLibAdminLinkres:hover a, #navLibAdminLinkres.over a {
background-position: -443px -30px;
}
#navLibAdminAdmin:hover a, #navLibAdminAdmin.over a {
background-position: -540px -30px;
}
/* === END LIB ADMIN MENUS === */
/* hide the text for each navigation heading */
#nav li span { display: none; }
/* the dropdown list styles */
#nav li ul {
position: absolute;
top: 28px;
left: -1px;
width: 187px;
margin: 0;
padding: 2px 0 0;
background: #e9edf4;
border-left: 1px solid #369;
border-right: 1px solid #369;
list-style: none;
display: none;
z-index: 201;
}
#nav li:hover ul, #nav li.over ul {
display: block;
}
#nav li ul li {
position: static;
clear: left;
float: left;
display: block;
width: 187px;
margin: 0;
padding: 0;
border-bottom: 1px solid #369;
text-align: left;
}
#nav li ul li a {
display: block;
width: 187px;
height: auto;
margin: 0;
padding: 5px 0;
font: .7em Arial, Helvetica, sans-serif;
color: #021351;
text-decoration: none;
background: transparent;
line-height: normal;
}
#nav li ul li a:hover {
display: block;
background: #fff !important;
cursor: pointer;
cursor: hand; /* for IE 5.5 */
}
#nav li ul li a span {
display: block;
width: 174px;
margin: 0 2px 0 4px;
}
#nav li#navAbout ul, #nav li#navAbout ul li, #nav li#navAbout ul li a {
width: 168px;
}
#nav li#navAbout ul li a span {
width: 155px;
}
/* === END OF DROPDOWN MENU STYLES === */
/* === START OF JOURNAL SELECTOR LAYER === */
#pubsSelector {
position: absolute;
top: 4.6em;
right: 0;
float: left;
width: 727px;
padding: 0 0 10px;
border: 1px solid #849dad;
background: #d8e3ed;
z-index: 6000;
font: .7em Arial, Helvetica, sans-serif;
}
#pubsSelector a, #pubsSelector a:visited {
color: #384c88;
text-decoration: none;
}
#pubsSelector a:hover {
color: #fff;
background: #369;
}
#pubsSelector #colOne {
float: left;
margin: 10px 0 0 10px;
padding: 0;
border-right: 1px solid #a5bac7;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#pubsSelector #colTwo {
clear: none;
float: left;
width: 200px;
margin: 10px 10px 0;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#pubsSelector ul {
float: left;
width: 230px;
margin: 0 10px 0 0;
padding: 0;
list-style: none;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
#pubsSelector ul li {
clear: left;
float: left;
width: 230px;
margin: 0 0 2px;
padding: 0;
}
#pubsSelector #colTwo ul {
width: 200px;
margin-bottom: 15px;
}
#pubsSelector #colTwo ul li {
width: 200px;
}
#pubsSelector ul li.letter {
margin: 7px 0 0;
font-weight: bold;
color: #444;
}
#pubsSelector #colTwo ul li {
margin-bottom: 5px;
}
#closeMenu {
position: absolute;
top: 5px;
right: 5px;
width: 15px;
height: 15px;
}
#pubsSelector h4 {
clear: left;
display: block;
margin: 0;
font-size: 1em;
text-decoration: underline;
color: #033451;
}
/* === END OF JOURNAL SELECTOR LAYER === */
/* === SHOW MULTIPLE ABSTRACTS === */
h3.multiAbsHead {
margin: 7px 7px 15px;
font-size: 1em;
color: #000;
}
/* === openURL === */
.openURL img {
border: 1px solid #ccc;
}
.articleLinksIcons .icons .openURL {
float: right;
margin: 10px 0 5px;
}
body.article #articleMeta .openURL {
margin: 5px 0;
}
/* Electronic Proof */
body.proof #content-wrap {
clear: both;
width: 990px;
}
body.proof #content, body.proof #contentMain, body.proof #textArea, body.proof #contentHead {
width: 100%;
}
body.proof #textArea h2 {
clear: left;
margin-top: 30px;
color: #333;
}
body.proof p {
clear: left;
}
body.proof #textArea .returnLink, body.proof #textArea .commentForm {
display: inline;
float: none;
margin: 7px 0 0;
border: 0 !important;
}
body.proof #textArea .returnLink a, body.proof #textArea .commentForm a {
float: left;
padding: 1px 4px;
}
body.proof #textArea .commentForm {
width: 7.25em;
}
body.proof #textArea .proofInstructions h2 {
margin-top: 0;
}
body.proof #textArea ul {
margin: 7px 20px 30px;
padding: 0;
}
body.proof #textArea ul li {
margin: 0 0 7px 17px;
padding: 0;
list-style-image: url(/templates/jsp/_style2/_achs/images/bullet1-trans.gif);
}
body.proof #textArea ul li ul {
margin-bottom: 0;
}
body.proof #textArea ul li div {
margin-bottom: 15px;
margin-left: 20px;
}
#articleID {
float: left;
width: 956px;
margin: 0 0 15px 10px;
padding: 7px;
font-size: .8em;
background: #eee;
}
#articleID h1 {
margin: 0 0 3px 0;
font-size: 1.2em;
color: #000;
}
#proofForm {
display: block;
margin: 25px 0 0;
padding: 0;
}
#proofForm label {
display: block;
margin: 7px 7px 7px 15px;
font-size: .8em;
}
#proofForm textarea {
width: 97%;
margin: 7px 10px 0 10px;
}
#proofForm #submit {
margin: 15px 0 15px 10px;
}
body.proof #textArea ul li #contactBlock {
font-family: Arial, Helvetica, sans-serif;
margin: 7px 0 7px 50px;
}
body.proof #textArea ul li #contactBlock div {
margin: 0;
}
/* === Common Styles === */
div.errorBlock {
min-height: 300px;
margin: 10px;
padding: 10px;
background: #fff;
font-size: .875em;
}
div.errorBlock h2 {
margin-bottom: 1em;
color: red;
font-size: 1.2em;
}
div.errorBlock h3 {
font-size: 1.1em;
margin-bottom: 1em;
}
#contentHead {
position: relative;
width: 796px;
margin: 0 0 10px;
padding: 0 0 5px;
border: 0;
background: #fff;
}
body.arrc #contentHead, body.lrc #contentHead {
width: 678px;
}
body.arrc #twoColText #contentHead, body.lrc #twoColText #contentHead {
width: 517px;
}
body.help #contentHead {
width: 758px;
}
#twoColText #contentHead {
width: 635px;
margin-left: 1px;
}
#contentHead h1, #contentHead h2, body.coverArt #textArea h2, body.issueList #textArea h2 {
margin: 0 2px;
padding: 7px 0 7px 7px;
font: bold 1em "Trebuchet MS", Arial, Helvetica, sans-serif;
color: #2d5073;
background: url(/templates/jsp/_style2/_achs/images/h2-bg2.gif) repeat-x;
}
#twoColText {
min-height: 45.35em;
margin: 0;
padding: 0 0 10px 160px;
background: #fff url(/templates/jsp/_style2/_achs/images/sidenav-bg.gif) repeat-y;
}
#sideNav {
position: absolute;
top: 1px;
left: 1px;
width: 160px;
margin: 0;
padding: 0;
border-right: 1px solid #b6b6e1;
background: #d1e6f6;
font-family: Arial, Helvetica, sans-serif;
}
#sideNav h2 {
margin: 0;
padding: 3px;
background: #369;
color: #fff !important;
font-size: .8em;
line-height: normal;
}
#sideNav ul {
margin: 0 !important;
padding: 0;
list-style: none;
}
#sideNav ul li {
display: block;
margin: 0 !important;
padding: 0 !important;
border-top: 1px solid #fff;
border-bottom: 1px solid #aebedc;
font-size: .95em;
}
#sideNav ul li a {
display: block;
text-decoration: none;
padding: 2px 0 1px;
}
#sideNav ul li a:hover {
background: #fff;
}
#sideNav ul li a span {
display: block;
margin: 0 2px 0 5px;
font-size: .75em;
color: #369;
}
#sideNav ul li.onPage a {
background: #ffffe4 url(/templates/jsp/_style2/_achs/images/onPage.gif) no-repeat right;
}
#sideNav ul li.onPage a span {
font-weight: bold;
}
.sideBox {
position: relative;
top: 0;
clear: right;
float: right;
margin: 0 10px 10px;
padding: 7px 7px 0;
border: 1px solid #888;
font-family: Arial, Helvetica, sans-serif;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
.pageTop {
top: 11px;
}
.sideBox h2 {
margin: 0 !important;
color: #333 !important;
}
.sideBox p {
margin: 0 0 10px !important;
font-size: .8em;
line-height: normal !important;
}
.sideBox .credit {
text-align: right;
margin-bottom: 5px !important;
font: italic .7em Arial, Helvetica, sans-serif !important;
}
.sideBox .caption {
margin-bottom: 7px !important;
font-size: .8em !important;
}
#articleBody .sideBox {
font-size: 1.145em;
}
.leftSide {
clear: left;
float: left;
margin: 0 10px 10px;
}
.fullBox {
clear: both;
margin: 15px auto;
padding: 0 10px;
text-align: center;
border: 1px solid #ccc;
}
.fullBox .credit {
text-align: right;
margin: 0 0 10px 0;
font: italic .7em Arial, Helvetica, sans-serif !important;
}
.fullBox .caption {
font-size: .8em !important;
text-align: left;
}
.fullBox p {
width: auto !important;
text-align: left;
}
.fullBox div {
font-size: .8em;
text-align: left;
}
#monthYearNav {
float: right;
}
#monthYearNav * {
vertical-align: middle;
}
#monthYearNav div, #monthYearNav strong {
margin: 5px 0;
font-size: .8em;
font-family: Arial, Helvetica, sans-serif;
}
#monthYearNav input {
margin: 0 7px 0 0;
}
div.button {
float: left;
border: 1px solid #369 !important;
}
div.button a, div.button a:hover {
display: block !important;
padding: 1px 2px;
font-size: .9em;
color: #fff !important;
background: #69c !important;
text-decoration: none !important;
}
div.button a:hover {
background: #369 !important;
}
.backButton {
position: absolute;
top: 0;
right: 0;
height: 29px;
background: #fff;
}
.backButton a {
display: block;
height: 21px;
margin: 1px;
padding: 5px 7px 0 30px;
background: #f7fbfd url(/templates/jsp/_style2/_achs/images/back-button.gif) no-repeat 5px 5px;
border: 1px solid #d8ebf9;
font-size: .75em;
}
.backButton a:hover { background-position: 5px -18px; }
.audioBoxWrap {
padding-top: 10px;
border-top: 1px solid #ccc;
}
.audioBoxWrap img.cover {
float: right;
margin-left: 7px;
margin-right: 7px;
border: 1px solid #ccc;
}
.audioBoxWrap h2 {
margin-top: 0 !important;
color: #333 !important;
font-size: .9em;
}
.audioBoxWrap div {
clear: left;
margin-left: 10px;
font-size: .8em;
}
.audioBoxWrap p {
margin-bottom: 0 !important;
}
.audioBoxWrap .info {
padding: 2px 0;
font-family: Arial, Helvetica, sans-serif;
}
#textArea div.landingBox {
width: 318px;
float: left;
margin: 0 8px 18px 11px;
display: inline;
}
#textArea div.landingBox h2 {
margin-top: 8px;
margin-bottom: 0px;
padding-top: 0;
}
#textArea div.landingBox h3 {
margin-bottom: 5px;
padding-bottom: 0;
}
#textArea div.landingBox img {
float: right;
margin: 10px 0 10px 10px;
}
#textArea #contentHead a.landingReturn {
float: right;
margin: 7px;
font-size: .75em;
}
.ppTable {
margin: 10px auto;
font-size: .875em;
}
.bgcolor2 {
background: #69c;
}
.bgcolor5 {
background: #ccc;
}
.bgcolor6 {
background: #f2f2f2;
}
.alignH2 {
margin-top: 1em !important;
}
.centered {
text-align: center !important;
}
.bottom {
margin: 5px 0 10px !important;
}
.padBox {
padding: 10px !important;
}
.padTop {
padding-top: 7px !important;
}
.reallyPadTop {
padding-top: 15px !important;
}
.padBottom {
padding-bottom: 7px !important;
}
.marginLeft10 {
margin-left: 10px !important;
}
.marginRight10 {
margin-right: 10px !important;
}
.marginSides10 {
margin-left: 10px !important;
margin-right: 10px !important;
}
ul.marginBottom {
margin-bottom: 17px !important;
}
.hide {
display: none;
}
.flLeft {
float: left;
margin-right: 7px;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
.flRight {
float: right;
margin-left: 7px;
display: inline; /* EXPLORER SUCKS BIGTIME */
}
.alignRight {
text-align: right !important;
}
.clearBoth {
clear: both !important;
}
br.clearBoth {
line-height: 7px;
}
.noBorder {
border: 0 !important;
}
.noBreak {
white-space: nowrap !important;
}
.noMargin {
margin: 0 !important;
}
.noPadding {
padding: 0 !important;
}
.small {
font-size: .9em !important;
}
.smaller {
font-size: .8em !important;
}
.large {
font-size: 1.1em !important;
}
.larger {
font-size: 1.2em !important;
}
.noBold {
font-weight: normal !important;
}
.bordered {
border: 1px solid #ccc !important;
}
.alignMid * {
vertical-align: middle !important;
}
.w50 { width: 50px !important; }
.w75 { width: 75px !important; }
.w100 { width: 100px !important; }
.w125 { width: 125px !important; }
.w150 { width: 150px !important; }
.w175 { width: 175px !important; }
.w200 { width: 200px !important; }
.w225 { width: 225px !important; }
.w250 { width: 250px !important; }
.w275 { width: 275px !important; }
.w300 { width: 300px !important; }
.w325 { width: 325px !important; }
.w350 { width: 350px !important; }
.w370 { width: 370px !important; }
.w375 { width: 375px !important; }
.w400 { width: 400px !important; }
.w425 { width: 425px !important; }
.w450 { width: 450px !important; }
.w475 { width: 475px !important; }
.w500 { width: 500px !important; }
.w525 { width: 525px !important; }
.w550 { width: 550px !important; }
.w575 { width: 575px !important; }
.w600 { width: 600px !important; }
.w625 { width: 625px !important; }
.w650 { width: 650px !important; }
.w675 { width: 675px !important; }
.w700 { width: 700px !important; }
.w725 { width: 725px !important; }
.w750 { width: 750px !important; }
.w775 { width: 775px !important; }
.w800 { width: 800px !important; }
a.underline {
text-decoration: underline !important;
}
a.underline:hover {
text-decoration: none !important;
}
ul.noBullet {
margin: 15px 0;
padding: 0;
list-style: none;
}
ul.noBullet li {
margin: 0 0 5px;
padding: 0;
}
ul.noBullet li img {
margin-right: 7px;
}
ul.noBullet li a {
text-decoration: none;
vertical-align: middle;
}
ul.noBullet li a:hover {
text-decoration: underline;
}
/* === Alternate Color Schemes === */
/* Green */
body.green {
background: #fff url(/templates/jsp/_style2/_achs/images/body-bg-green.gif) repeat-x;
}
#container.green #nav-wrap-journal {
background: transparent url(/templates/jsp/_style2/_achs/images/navbar-bg-green.gif) no-repeat;
}
#container.green #navJournalHome a, #container.green #navBrowse a, #container.green #navASAP a, #container.green #navCurrent a, #container.green #navMultimedia a, #container.green #navOnlineNews a, #container.green #navSubmission a, #container.green #navSubscription a, #container.green #navAbout a {
background-image: url(/templates/jsp/_style2/_achs/images/journalNav-green.gif);
}
#container.green #nav li ul li a {
background: transparent;
}
#container.green .findIssue {
background: #12703d;
}
#container.green .findCitation {
background: #77aa90;
}
#container.green #articleAreaHeader {
background-image: url(/templates/jsp/_style2/_achs/images/articleView-tabs-bg-green.gif);
}
#container.green #articleAreaHeader ul li a {
background-image: url(/templates/jsp/_style2/_achs/images/articleView-tabs-green.gif);
}
#container.green h2, #container.green h3 {
color: #29754e;
}
#container.green .findIssue h3, #container.green .findCitation h3 {
color: #fff;
}
#container.green #mainBody {
background: #f2fced url(/templates/jsp/_style2/_achs/images/topright-green.gif) right top no-repeat;
}
#container.green #content-wrap {
background: transparent url(/templates/jsp/_style2/_achs/images/topleft-green.gif) left top no-repeat;
}
#container.green .sideColBox, #container.green .rtColBox {
border-color: #a3cdb7;
}
#container.green #content, #container.green #articleContent, #container.green #contentHead, #container.green #slides, #container.green #articleArea, #container.green .articleBox, #container.green #abstractBox, #container.green #supInfoBox, #container.green #aiContent, #container.green #nav li ul, #container.green #nav li ul li, #container.green #sideNav, #container.green #textArea, #container.green #tocHead, #container.green #newsIndexContent {
border-color: #a3cdb7;
}
#container.green #citationJump .info {
background: url(/templates/jsp/_style2/_achs/images/info-green.png);
}
#container.green .articleOptions .viewAbs {
background: url(/templates/jsp/_style2/_achs/images/viewAbs-green.png);
}
#container.green .articleOptions .downCitations {
background: url(/templates/jsp/_style2/_achs/images/downCit-green.png);
}
#container.green .articleOptions .showThumbs {
background: url(/templates/jsp/_style2/_achs/images/showAllThumbs-green.png);
}
#container.green #articleArea .articleOptions .info {
background: url(/templates/jsp/_style2/_achs/images/info-whitebg-green.png);
}
#container.green #rssBox a {
background: url(/templates/jsp/_style2/_achs/images/rssbox-green.gif);
}
#container.green .rtColBox .formSubmit {
background: url(/templates/jsp/_style2/_achs/images/go-green.png);
}
body.green #pageFooter-wrap {
background: #086030;
}
#container.green #contentHead h1, #container.green #contentHead h2, #container.green #articleHead h2, #container.green .rtColBox h2, #container.green #tocHead h2, body.coverArt #container.green #textArea h2, body.issueList #container.green #textArea h2, body.authIndex #container.green #aiContent h2 {
background: url(/templates/jsp/_style2/_achs/images/h2-bg2-green.gif) repeat-x;
color: #29754e;
}
#container.green #articleTools {
background: #dbf0e5;
}
#container.green #articleTools h3 {
color: #fff;
background: #56a074;
}
#container.green #articleTools li a, #container.green #articleTools li a:visited, #container.green #articleTools ul.history li {
background-color: #dbf0e5;
border-left-color: #29754e;
}
#container.green #articleContent {
background: #fff url(/templates/jsp/_style2/_achs/images/articleContent-bg-green.gif) repeat-y right top;
}
#container.green #articleMain #links {
background: url(/templates/jsp/_style2/_achs/images/gradient1-green.gif) repeat-x;
}
#container.green #links ul li.onPage span, #container.green #links ul li a:hover {
background: #29754e;
}
#container.green #articleNav {
background: url(/templates/jsp/_style2/_achs/images/articleNav-green.gif) no-repeat 0 -58px;
}
#container.green #articleNav a {
background-image: url(/templates/jsp/_style2/_achs/images/articleNav-green.gif);
}
#container.green #articleNavB .tocLink {
background-image: url(/templates/jsp/_style2/_achs/images/tocLink-green.gif);
}
#container.green #articleNavC, #container.green #articleNavC a {
background-image: url(/templates/jsp/_style2/_achs/images/articleNav-ASAP-green.gif);
}
#container.green #articleNavD, #container.green #articleNavD a {
background-image: url(/templates/jsp/_style2/_achs/images/articleNav-JAM-green.gif);
}
#container.green .articleGroupHead {
background: #12703d url(/templates/jsp/_style2/_achs/images/toc-h3-tl-green.gif) no-repeat left top;
}
#container.green .articleGroup h3 {
color: #fff;
background: url(/templates/jsp/_style2/_achs/images/toc-h3-tr-green.gif) no-repeat right top;
}
#container.green #issueNav {
background: url(/templates/jsp/_style2/_achs/images/issueNav-green.gif) no-repeat 0 -58px;
}
#container.green #issueNav a {
background-image: url(/templates/jsp/_style2/_achs/images/issueNav-green.gif);
}
#container.green #volumeNav {
background-image: url(/templates/jsp/_style2/_achs/images/volumeNav-green.gif);
}
#container.green #volumeNav a {
background-image: url(/templates/jsp/_style2/_achs/images/volumeNav-green.gif);
}
#container.green div.alphaSelect, #container.green div.alphaSelect a, #container.green div.alphaSelect a span.onPage {
background-image: url(/templates/jsp/_style2/_achs/images/alphabet-green.gif);
}
#container.green #twoColText {
background-image: url(/templates/jsp/_style2/_achs/images/sidenav-bg-green.gif);
}
#container.green #twoColText h1 {
color: #29754e;
}
#container.green #twoColText h2.subtitle {
color: #333;
}
#container.green #sideNav {
background: #dbf0e5;
}
#container.green #sideNav h2 {
background: #12703d;
}
#container.green a.showThumbs {
background-image: url(/templates/jsp/_style2/_achs/images/showAllThumbs-green.png);
}
#container.green #onlineNewsNav a {
background-image: url(/templates/jsp/_style2/_achs/images/onlineNewsNav-green.gif);
}
/* Added by Atypon */
#issueList .closed ul {
display: none;
}
#issueList .closed .plusMinus {
background-position: 0 0
}
.citation_year {
font-weight: bold;
}
.citation_volume {
font-style: italic;
}
.figure .altMedium, .figure .altLarge, .figureNav .disabled, .disabled {
display: none;
}
#figureViewerNav .figureNav span .index {
font-size: 1em;
}
ul.references li {
margin-bottom: 1em;
}
ul.references li .NLM_citation {
margin-bottom: 0.5em;
}
.balloon div {
display: inline;
}
.balloon .NLM_citation span {
display: inline;
}
.sfxLink img {
margin-left: 0.5em;
margin-bottom: -5px;
}
.NLM_disp-formula {
margin: 1em;
text-align: center;
}
#articleBody .NLM_p, #articleBody p {
width: 610px;
margin: 0pt 0pt 1.5em;
padding: 0pt;
line-height: 1.6em;
word-wrap: break-word;
}
#articleBody p p, #articleBody .NLM_p p, #articleBody .footnote p, #articleBody #abstractBox p, #articleBody .caption p, #articleBody .NLM_table-wrap p, #articleBody li p, body.newsStory #articleBody p, #articleBody .quote p, #articleBody .boxed-text-float p {
width: auto;
}
#articleBody img {
max-width: 570px;
}
#articleBody .NLM.disp-formula img {
max-width: 500px;
}
#articleBody .graphic_meta {
font: .8em Arial, Helvetica, sans-serif;
}
#articleBody .graphic_meta p {
width: 570px;
margin-top: .2em;
margin-bottom: .2em;
line-height: normal;
}
p.last {
margin-bottom: 0;
}
table p.last, .NLM_table-wrap p.last, .balloon p.last, #references p.last, #correspondence p.last, #references .note {
display: inline;
}
#articleBody .NLM_p sup, #articleBody p sup {
line-height: 0;
}
a.ref {
text-decoration: none;
}
a.ref sup, sup a.ref {
text-decoration: underline;
}
.NLM_table-wrap, .NLM_table-group-wrap > table > table {
border: 1px solid black;
border-width: 1px 0;
}
.NLM_table-wrap { /* This entry needs to be called out separately or else IE6
won't recognize it (because the > table > table part of the above entry breaks
IE's parsing of the code */
clear: both;
width: 600px;
overflow: auto;
}
#articleBody div .NLM_table-wrap, #articleBody div table {
width: auto;
max-width: 550px;
}
.NLM_table-group-wrap {
margin: 0;
padding: 0;
}
.NLM_table-wrap table {
width: auto;
margin: 1em 2px;
padding: 1em 0;
border: 1px solid black;
}
.NLM_table-group-wrap > table {
width: 100%;
margin: 0;
padding: 0;
border: 1px solid black;
border-collapse: collapse;
}
.NLM_table-group-wrap > table > tbody {
margin: 0;
padding: 0;
}
.NLM_table-group-wrap > table > tbody > tr {
margin: 0;
padding: 0;
}
.NLM_table-group-wrap > table > tbody > tr > td {
margin: 0;
padding: 0;
border: 1px solid black;
border-collapse: collapse;
}
.NLM_table-group-wrap > table table {
margin: 0;
padding: 0;
border: 1px solid black;
border-collapse: collapse;
}
.NLM_table-group-wrap > table table td {
margin: 0;
padding: 0;
border: 1px solid black;
border-collapse: collapse;
}
.NLM_table-wrap-foot {
margin-top: 0.5em;
}
.NLM_table-wrap .NLM_caption, .NLM_table-group-wrap .NLM_caption {
font-weight: bold;
}
.NLM_citation .NLM_year {
font-weight: bold;
}
/* Added by Atypon, QA.2 - fn reference */
#articleTools .history a.ref, #articleTools .history a.ref:visited, #articleTools .history a:hover {
display: inline;
background: none !important;
border: none !important;
}
.originalMathML, .generatedMathML {
display: block;
border: 1px solid #777;
background-color: #eee;
padding: 5px;
}
a.coverArt_link {
border: 0;
}
.journalCover img, #tocCover img, a.coverArt_link img {
width: 115px;
}
.privateChar {
margin-bottom: 2px;
vertical-align: middle;
}
.column h3 {
margin-left: 10px;
}
/*to override style.css*/
td {
font-family:inherit;
font-size:inherit;
}
#articleAreaHeader ul li a#justAcceptedTab.on {
background-position: -4px -29px !important;
}
#articleAreaHeader ul li a#justAcceptedTab.off {
background-position: -4px -4px !important;
}
#articleAreaHeader ul li a#justPublishedTab.on {
background-position: -99px -29px !important;
}
#articleAreaHeader ul li a#justPublishedTab.off {
background-position: -99px -4px !important;
}
#articleAreaHeader ul li a#currentIssueTab.on {
background-position: -194px -29px !important;
}
#articleAreaHeader ul li a#currentIssueTab.off {
background-position: -194px -4px !important;
}
#articleAreaHeader ul li a#mostReadTab.on {
background-position: -289px -29px !important;
}
#articleAreaHeader ul li a#mostReadTab.off {
background-position: -289px -4px !important;
}
#articleAreaHeader ul li a#mostCitedTab.on {
background-position: -384px -29px !important;
}
#articleAreaHeader ul li a#mostCitedTab.off {
background-position: -384px -4px !important;
}
.teaser {
font-size: 0.8em;
}
.hidden {
display: none;
}
#abstractBox .figure {
display: inline;
background: none;
float: none;
width: auto;
border: none;
padding: 0;
margin: 0;
}
.entity {
vertical-align: middle;
}
.entityD {
vertical-align: bottom;
}
/* Atypon change - move */
#supInfoBox h3 {
margin: 7px 0 0 7px;
font-size: 1em;
color: #000;
}
#supInfoBox ul {
margin: 0 0 20px;
padding: 0 0 0 25px;
}
#supInfoBox ul li {
list-style-image: url(/templates/jsp/_style2/_achs/images/bullet1-trans.gif);
}
#supInfoBox ul li img {
margin: 0 5px 0 0;
}
#supInfoBox p {
font-size: .875em;
margin: 10px 7px 7px 7px;
}
/* b15394 */
span.perennialReviewAddition {
color: green;
}
span.perennialReviewDeletion {
color: red;
text-decoration: line-through;
}
.artTypeNotFound {
font-size: 0.8em;
margin-bottom: 1em;
}
/*added by Atypon*/
#articleBody #references .figures, #articleBody #references a.thumbnail{
float: none;
}
.quote {
clear: both;
display: block;
margin: 1em 20px;
padding: 10px 15px 1px;
border: 1px solid #ccc;
font: bold 1em Verdana, Arial, Helvetica, sans-serif;
background: #efefef;
color: #555;
text-align: justify;
}
div.boxed-text-, div.boxed-text-anchor, div.boxed-text-float {
clear: both;
margin: 1em 20px;
padding: 7px 10px 1px;
border: 1px solid #ccc;
font: .875em Arial, Helvetica, sans-serif;
background: #efefef;
}
.journal .notInJournal {
display: none;
}
ol#references.useLabel {
display: block;
list-style: none;
}
#references .refLabel {
float: left;
width: 2em;
margin-left: -2.5em;
font-weight: normal;
text-align: right;
}
.NLM_fn .NLM_fn-symbol {
float: left;
}
.federation select {
width: auto;
}
.federation label {
display: none;
}
#emailPageConfirm {
margin: 0 0.5em;
padding: 1em 1em 10em 1em;
background: #fff;
border: 1px solid #b6b6e1;
font-size: smaller;
}
#citedBy p.articleBody_abstractText {
width: auto;
}
.NLM_inline-graphic img {
vertical-align: middle;
}
.IN_LIST-title {
font-style: italic;
display: block;
margin: 1em 0 1em -2.5em;
}
.graphic_meta .NLM_permissions {
margin: 0 0 1.5em;
}
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=body-bg.gif
Content-Type: image/gif; name=body-bg.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/body-bg.gif
Content-Transfer-Encoding: Base64
R0lGODlhAQCbANUAAA9Ngh5zs////+fw6/z9/Ozz7/3+/ujx7Pb59/L29Ory7vP4
9e308Pz+/ff6+Pb6+Ojw6/v8/PT59vT49vf6+fn7++3z7/r7+vL39e/18e307/3+
/eny7fr8/Pr8++vy7/39/Pn7+fj6+fD18/T39eny7Onx7P/+/vX59/n8+v7//u70
8fH28+/08ury7fD28+jw7PD18v/+/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAJsAAAZMwIBwSCwWAcikcslsOp/Q
p2BAHUBgh4OpxHEpFJ+C2KJhMFatTOw1YiUSmAVpMZGgEIiHgyIKpS4VHh0RBIUg
DRsGBionAjICkJECQQA7
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=navbar-bg.gif
Content-Type: image/gif; name=navbar-bg.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/navbar-bg.gif
Content-Transfer-Encoding: Base64
R0lGODlh6AMeAOYAABw/lEllqaKw0zBMlEFdoR8/lENfoylFlDdTlyxIlD5anh0/
lDNPlCZClCI/lEZipjpWmkhkqIeZxlt0sTRTn/////X3+qe11sLL4qm21k1oq/Hz
+KWy1Ky42PDy+FlysL7I4MDJ4aa01cHK4VBpp2Z+t5WlzUdgn1Rtq0JfpjxVnzZT
n2R8tjpYopmoz0xmpIOWxH2Rwpqpz0pjokpmqVZwrj5YnyJEl4qcyIudyGB4tFhx
sERen1Vvrp+t0kFanzlTn1JsqmN7tQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAADoAx4AAAf/gBUWGB0ChoeIiYqLjI2O
j5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsIYcIBYVGxmxubq7vL2+
v8DBwsPExcbHyMmlFx4jhzBCE9LT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u
7/Dx8vP09fb3+Pn6+/olOYchLhiKEaCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rc
yLGjx48gQ4ocSbKkyZMoU6pcybKly5cBaOAwJOJQD5g4c+rcybOnz59AgwodSrSo
0aNIQbJQlLSp06dQo0qdSrWq1atYs178wFSr169gw4odS7as2bNoC3JNFKGt27dw
/+PKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLbnco
esC5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068
uPHONRQZWM68ufPn0KNLn069uvXr2LNr3869u/fv4MOLH0++vPnz6NOrX8++vfv3
8OPLn0+/PnMUigjo38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGF
GGao4YYcdujhhyCGKOKIJO4XhCIKpKjiiiy26OKLMMYo44w01mjjjTjmqOOOPPbo
449ABinkkEQWaeSRSCap5P+STDbp5JNQRinllCqSoAgEWGap5ZZcdunll2CGKeaY
ZJZp5plopqnmmmy26eabcMYp55x01mnnnXjmqeeefPbp55+ABipoli8ogsChiCaq
6KKMNuroo5BGKumklFZq6aWYZqrpppx26umnoIYq6qiklmrqqaimquqqrLbq6quw
xoroDIowYOutuOaq66689urrr8AGK+ywxBZr7LHIJqvsssw26+yz0EYr7bTUVmvt
tdhmq+223Hbr7bfg3nqCIgOUa+656Kar7rrstuvuu/DGK++89NZr77345qvvvvz2
6++/AAcs8MAEF2zwwQgnrPDCDDfs8MPm8qBIAhRXbPH/xRhnrPHGHHfs8ccghyzy
yCSXbPLJKKes8sost+zyyzDHLPPMNNds880456zzzjz37HPFPyhywNBEF2300Ugn
rfTSTDft9NNQRy311FRXbfXVWGet9dZcd+3112CHLfbYZJdt9tlop6322my3TbQN
ijQg99x012333XjnrffefPft99+ABy744IQXbvjhiCeu+OKMN+7445BHLvnklFdu
+eWYZ6755pzPrYIiDoQu+uikl2766ainrvrqrLfu+uuwxy777LTXbvvtuOeu++68
9+7778AHL/zwxBdv/PHIJ6/88qIDoUgB0Ecv/fTUV2/99dhnr/323Hfv/ffghy/+
//jkl2/++einr/767Lfv/vvwxy///PTXb//9+Oevf/QrKLLA/wAMoAAHSMACGvCA
CEygAhfIwAY68IEQjKAEJ0jBClrwghjMoAY3yMEOevCDIAyhCEdIwhKa8IQoTCEA
KaAIALjwhTCMoQxnSMMa2vCGOMyhDnfIwx768IdADKIQh0jEIhrxiEhMohKXyMQm
OvGJUIyiFKdIxSpa8YpYfCELE5HFLnrxi2AMoxjHSMYymvGMaEyjGtfIxjYqcYuI
cKMc50jHOtrxjnjMox73yMc++hGIcDzEDf5IyEIa8pCITKQiF8nIRjrShS04hEAE
oIFHWvKSmMykJjfJyU56En2NOqCJMwTgghR88pSoTKUqV8nKVrrSjRrwgSFCcItD
mEACuMylLnfJy1768pfADKYwh0nMYhrzmMhMpjKXycxmOvOZ0IymNKdJzWpa85rY
zKY2t8nNbnrzm+AMJzhlIEkPCIIQykinOtfJzna6853wjKc850nPel5iFrUIBAA7
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=profile.png
Content-Type: image/png; name=profile.png
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/profile.png
Content-Transfer-Encoding: Base64
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
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=searchbox-tl.png
Content-Type: image/png; name=searchbox-tl.png
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/searchbox-tl.png
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAu8AAAAGCAIAAAD8NedlAAAABGdBTUEAANbY1E9Y
MgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABuSURBVHja
7NY7DoJAGIVRHxNCiDiBDhOpbAwFLaUbcAFU7INyCrfk9nQbf3JOdetbfcf8LkNf
lW1cnu1/HAAAQkmPW/39TN0l+QIAiOi0r3cpAwAErpnXnL0AAASumWtz9gIAELhm
XAAAhPYTYAAhpAY0mZCHegAAAABJRU5ErkJggg==
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=searchbox-tr.png
Content-Type: image/png; name=searchbox-tr.png
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/searchbox-tr.png
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAIAAABvrngfAAAABGdBTUEAANbY1E9Y
MgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAA6SURBVHja
Yvz9cycDA8Pzd79OXP9ct/ARkMEIEYKA91/++NRcQxECgq0n36MLff3xF10ICLAI
AQQYAIPFJBrAbKl6AAAAAElFTkSuQmCC
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=searchbox-bl.png
Content-Type: image/png; name=searchbox-bl.png
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/searchbox-bl.png
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAABGdBTUEAANbY1E9Y
MgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAySURBVHja
Yvz9c+d/BiyAiQEHAEl8xCWxD5dEDRC/w5BgYXO7BqT1gHgNEL+ASQAEGAAazwm5
lpqbDAAAAABJRU5ErkJggg==
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=searchbox-br.png
Content-Type: image/png; name=searchbox-br.png
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/searchbox-br.png
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAABGdBTUEAANbY1E9Y
MgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAvSURBVHja
Yvz9c+d/BiyAiQEHwCXxBZfEbmwS74C4BlniBRCvAWI9Fja3awABBgDMVwm5JPxs
+QAAAABJRU5ErkJggg==
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=topright.gif
Content-Type: image/gif; name=topright.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/topright.gif
Content-Transfer-Encoding: Base64
R0lGODlhAwADAJEAAP///+72/PH4/fP4/SH5BAAAAAAALAAAAAADAAMAAAIFFBCD
IQUAOw==
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=topleft.gif
Content-Type: image/gif; name=topleft.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/topleft.gif
Content-Transfer-Encoding: Base64
R0lGODlhAwADAJEAAP///+72/PH4/fP4/SH5BAAAAAAALAAAAAADAAMAAAIFBAQT
ElEAOw==
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=bullet1-trans.gif
Content-Type: image/gif; name=bullet1-trans.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/bullet1-trans.gif
Content-Transfer-Encoding: Base64
R0lGODlhBQAJAIABAFpyq////yH5BAEAAAEALAAAAAAFAAkAAAIKjI8QasoLXUT0
FAA7
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=bullet1-white-trans.gif
Content-Type: image/gif; name=bullet1-white-trans.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/bullet1-white-trans.gif
Content-Transfer-Encoding: Base64
R0lGODlhBQAJAIABAP///////yH5BAEAAAEALAAAAAAFAAkAAAIKjI8QasoLXUT0
FAA7
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=go.png
Content-Type: image/png; name=go.png
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/go.png
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAABkAAAARCAYAAAAougcOAAAABGdBTUEAANbY1E9Y
MgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJhSURBVHja
Yrz47BtD34q9nWyszE6///zV/Pf/PxsDA8M/BvIBEyMD4x+geXeA5u0tDHcuZIzr
3dT2n4GhIsTRkFFckI+BhZmJ4f///2TbwMjIyPD33z+GNx++MGw4fPHrr99/Z7Kw
s7FoOxmrMypICDNQC7AyMDPIiAkyeFvpcm89dtmGCSgmz8vJwUALIMjLBfTVf0UW
IJsZ6EMM8P79J4ZjR88xPH/+GszX0lJmsLI2gsv/+PGT4dzZqwzXrt2FyxsZazNw
cLDD1UCD/T/IJxgRADJ4yqTFYEvABn7/wbB1ywGggXfgFsyZtQosBpKDyXd3zgHL
oQMWdAGYASCQkxfLICkpCmbfv/eYQVFJFsyG+dDbxwHuO5Cv1q7ZCbYsOMQdNbmh
W3IPaBjIImsbI7gFIACzAGagIDAlIgcfKKhAYiDHEPTJC2gcKCrKoBj64cMnMNvJ
2RIcX8iWwoCAID9WS5iISSWgoAFZtHfPcfJyJ7qABDSIzp27BhcDhT0oOGAAFIzo
LgYFMUgMOYhxWqKlpQIOW5DLQREMSy2gIIKr0VYB06CIhlkAinAQQI4nnHECAtGx
/gxLF28Ea4RphvkAFi/37j0BOwSEkSMf2cfIljAxoOVGkGGg5Hvt6h14hIMSAnJk
p6SGgvMNLKFoAkMAPagYIeYysgAz5YPP335gWA/KudhchR60IIwLfP76g4GZifEZ
E7A4vrr71PVvr95/pmq59f7zN4ZtJ658+vP332FGUH3Sv3LvBBZmZn9gES3BxsL8
G+g7RvKLeob/QIezABmfgYXX+vwwpwyAAAMAJ6IYX4xomfkAAAAASUVORK5CYII=
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=citFndOr.png
Content-Type: image/png; name=citFndOr.png
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/citFndOr.png
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAKIAAAAOCAYAAACsLMeOAAAABGdBTUEAANbY1E9Y
MgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEbSURBVHja
7JfbCcJAEEV3xX/twJSQEmIHWoGmAtOBpgKxgmgFxgq0A7UCtwPTQZyFGwhLXmhE
hHvgko/d/AyHmR2d57ki5Ndoikgo4v8xkywkY8lNEksynPmSbemuPd9JDMvWzoAl
6EwE0Q4Q0JM88FWQM5BcECvtmWVjR+wTK9lTMoVkBUd0xBASWvF0yz+EHfGjkWwq
hDpBwCYylq+doYQtsWFi4DupeeuZ0mguWOO7lOzxVixgrRtE1CzD1zpoWCM24Wh+
i3vNCPadjqewyMxxP2DpKGKfpHjrRc4Cs8JZ1cjeSBLcI9yaex23CcQzeAMabMWq
Zmu+4p0Ys3wUsU88CDnCuE6dDuk7m7WHXFg6ikgoIiHdeAkwAA2CSoIrypEiAAAA
AElFTkSuQmCC
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=info.png
Content-Type: image/png; name=info.png
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/info.png
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAADIAAAASCAYAAAAZk42HAAAABGdBTUEAANbY1E9Y
MgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKESURBVHja
Yvz//z8DMpi95hIXkPIBYkcgNgNiFajUHSA+BcT7gXhLaojeN4ZBBBiRPQL0hCuQ
Snv99kvIjbuvGF68+cwAZDOwMDMxCAlyMchKCjDoqEkycHOxrQGqmwX0zO5B5xGg
JyJ///lbe/jUPU2QJ3ABNlZmBntzZQZVRdFrQG4L0DPLB41HQDEB9MTEzXuuar54
/ZkojZoq4gyOliogzxQMhphhguaJNFBMYPOElBgvg7qiCIb49TsvGS7deKYF0gs1
AwN8//btP7EOAaklRT2GR0AZG5Yn0EFJsjXD1tkxDCsmhGL1zOlLjxl+/vwTAi0c
yAYgD3BycTGCMLlmsIBKJ1DoYgMHTt5n+Pz1J8PZK88Ybt5/gyEP9ATD7YdvgAWA
BKiEW4UuT4nDyIkRs8fPP2CV5OVhB8dEX5UHg4mOFFY1z15+ZIAW03iTCoyPTRxX
0sKmHl+MqIBCHRtQUxBmcLRQxGvA12+/GJDqGpTYQHcAcgwhJycYG1tyw8XHFiMM
TIzY5UFJimCxx8g4GEpfsEfuCPBz4kxa2NjIgA8ifmcweOSUnJQgVklfR3WsbGQA
qu2hTZcBBaA8sl9LVTzjwrWnDP/+oeap+kn7GZZtvgRm37z/FkMzDzc7g7I8uFje
T22HoecxQiUgKEa28PFwrDHRlcWQBBUCZ4D5BISxFQigpgoTEyOo3bUFl2NwOQSf
HLI4sfULE7QVO8tET/aahrIY0SFmY6rIIC8teA3aeBzwljBKoxFI1Vy++Vzr5PmH
DL9+/8WqAZSc7MyUGBRkhAZfoxG9GQ9qdtx99Ibh6ctPDB8+fQfLiQhyM4AKBUVZ
IVhyGpzN+KHesQIIMADnKECt08LozAAAAABJRU5ErkJggg==
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=journals-bg.jpg
Content-Type: image/jpeg; name=journals-bg.jpg
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/journals-bg.jpg
Content-Transfer-Encoding: Base64
/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAUAAA/+IMWElDQ19Q
Uk9GSUxFAAEBAAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNz
cE1TRlQAAAAASUVDIHNSR0IAAAAAAAAAAAAAAAEAAPbWAAEAAAAA0y1IUCAgAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARY3By
dAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZ
WgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABwZG1k
ZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAUbWVh
cwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAABDwAAAgMZ1RSQwAABDwAAAgMYlRS
QwAABDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5OTggSGV3bGV0dC1QYWNr
YXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAA
AAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAAARbMWFla
IAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABi
mQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAAABZJRUMgaHR0
cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVz
YwAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2Ug
LSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xv
dXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAA
LFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAA
AAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYt
Mi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDP
FAAD7cwABBMLAANcngAAAAFYWVogAAAAAABMCVYAUAAAAFcf521lYXMAAAAAAAAA
AQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JUIGN1cnYAAAAAAAAE
AAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0A
cgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQANUA2wDgAOUA
6wDwAPYA+wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwB
gwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHpAfIB+gIDAgwCFAIdAiYCLwI4AkEC
SwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALrAvUDAAMLAxYDIQMtAzgD
QwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQtBDsESARVBGME
cQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYFpgW1BcUF
1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EH
dAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAklCToJ
TwlkCXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1EL
aQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakN
ww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQCRAmEEMQ
YRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMDEyMT
QxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkW
bBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ
3RoEGioaURp3Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAd
mR3DHeweFh5AHmoelB6+HukfEx8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUh
oSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPwJB8kTSR8JKsk2iUJJTglaCWXJccl
9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkGKTgpaymdKdAqAio1Kmgq
myrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6CLrcu7i8kL1ov
kS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ40
2DUTNU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85vDn5OjY6
dDqyOu87LTtrO6o76DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/iQCNA
ZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPARANER0SKRM5FEkVVRZpF3kYiRmdG
q0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkviTCpMcky6TQJN
Sk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZU
QlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0Vb
lVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBj
Q2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdr
T2una/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11z
uHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8
gXzhfUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6hB2EgITjhUeF
q4YOhnKG14c7h5+IBIhpiM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN/45mjs6P
No+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSKlPSVX5XJljSWn5cKl3WX4JhMmLiZ
JJmQmfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowaj
dqPmpFakx6U4pammGqaLpv2nbqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1Erbiu
La6hrxavi7AAsHWw6rFgsdayS7LCszizrrQltJy1E7WKtgG2ebbwt2i34LhZuNG5
SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB48JfwtvDWMPUxFHE
zsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+40DnQ
utE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3Ird
EN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp
0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32
+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf///+4ADkFkb2JlAGTAAAAA
Af/bAIQAAgICAgICAgICAgMCAgIDBAMCAgMEBQQEBAQEBQYFBQUFBQUGBgcHCAcH
BgkJCgoJCQwMDAwMDAwMDAwMDAwMDAEDAwMFBAUJBgYJDQsJCw0PDg4ODg8PDAwM
DAwPDwwMDAwMDA8MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgDDAG0
AwERAAIRAQMRAf/EAIMAAQEBAQEBAQEAAAAAAAAAAAABAgMEBQYJAQEBAQEAAAAA
AAAAAAAAAAAAAQIEEAABAwEEBggFAgQGAgMBAQABABECAyExQRJRYXEiMkKBscHR
UhMjBPCRYjNDoeHxgrJTcpKiwmNzJAXSkxRUdBEBAQAAAAAAAAAAAAAAAAAAABH/
2gAMAwEAAhEDEQA/AP7PMV2uIYoDFAYoDFAYoDFAYoDFAYoDFAYoDFAYoDFAYoDF
AYoDFAYoDFAYoDFAYoDFAYoDFAYoDFAYoDFAYoDFAYoDFAYoDFAYoDFAYoDFAYoD
FAYoDFAYoDFAYoDFAYoDFAYoDFAYoDFBtkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBk
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
EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEHn9wY5chDzN
sRczcz4Mg+ZJyTmJJlbI+IYSZ/kEGDp2Em/puPSgwbMG0IMILGJlKMRzED5oP0QD
AACwXIKgICAgICDSiCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICDjUqiG6N6ZuGAGk6kHiJMnJLvvSkcWxOoYDFBiQJstEncHFz2n9Ag8x2Pq
GvAX9CDB+Cgyg9HtY5q9PUXPQg+4gICAgICAgICAgICAgICAgICAgICAgICAgICA
gICAgICAgICAgICAgICAgICAgIPPUrZXjAjMOORujt7kHlOL47xzY/VPVoCCE6Sb
N4k36pS16AgwdHQz/MP/AFFBxmMdNhPUfjBBxPyQZQe/2EXnOXhDfP8Agg+qgICA
gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCEiIJJYC8
lB5Z1TJgHhCVxHHL/CMNqDibNERDpjDb4pIIbL7G3jmtb6paToCDN2kN0kE/7j+i
DJ6NDXizsH6lBzlo+YPx8FB5jZYgiD63sItSlLxS6kHuQEBAQEBAQEBAQEBAQEBA
QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEHKdUROSIz1PAO04IPNImZMiRPL
fI2U4d5QS295b+PPPZoCDN2gZLHFsYah4pIJd9OW223K+J0yOhBk6GIaxsQ+D+I4
nBBk/wACNWjULhpKDmdnx8dpQeed+1BlB9z2sctCmNIf52oPQgICAgICAgIogICA
gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgzKUYDNIsEHnnUkWd6UTwgcc
tgwQcm5Mt9vkxNp1zkgX2vGWTm/HDYMSgN/i3/8APP8A+IQTW4GWwSiHEfpgMTrQ
Q2fTkwvyk9cigwxub6coP+kHrKDJfa+I+QI6h80HOXR2fw7NqDzyvQZYoP0UY5Yx
j4QB8kGkBAQEBAQEFVBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEHC
VZ3FJpNxVDZEdOKDi/Pmdr/cTu/kCCXWuYZ+Y21J7BggNyZb7fIibTrnJAd7Xicn
N+OGwYlBNTS38Oee3QEEJ5nbLuiURYPpgMTrQZNn05bGFuUnAaZHSgydDDw5Xs/w
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
CAgICAgICAgICAgICASwJNwvQfJzEnNeSczf6m+Zig0LNbfrlNnzkUGtIMsCDLUL
Zy6TYgukmOgyh/RDtKC/6yJXeOp3RQUat9pWf8lTTsCBYxc545t4i+pPQNQQXxGU
mN1aoMPoigtrxAiBMD06eEB4pa0E3cptJpyLGXNVloGpBbc2GeI/kpDvQSxrjkkb
Bz1Tr1ILa5LgSiN6fLTGga0GWDRjlLEvCkb5HxT1ID3nMZCRaUxfM+GOpBDi5Yxs
lKN0R4I6yghsdxlYMQOUHkGs4oMl3uDuzYOLo7I3lBg4Na9z4vc+027EHKfwfjb+
qDt7GD1JzwiG+aD6qAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOVct
RngSGHTYg+YDiL7xtvH6kIOgwy3hsm3hj2lBXDWB42EDTEFoj+Y2oNB3DHecgS+o
8Uv5bkANYxyjKcp8NPGW2SDXT5e7b/x0+8oFrhvTOWz/AI4adpQUcmUMfw0zgPHJ
A3WxlAnpqy7kFcvImQE4j1KmFMeGOtBGDRGQsbadHGR8U0DxSz6qtb/bBAY7sRFi
LadE3RHimgljEuZRkd6fNUOgakFuckiMohpyF1MeGOtBLmbcyhwDdTjpP1FBm5uR
g4e+IN8j9RwQZIwy6Bk0A3R2m8oMm23id3bHA/O4IOMvnpbp/f8ARB9D2cMlHMb5
knowQetAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEHk94WpAYmQboc9
iDwx1X8vZ1hBsMbrHuOhwwPREOg2CbCAxJBiNBIaI/ljagu630ZenID1yKDVtuYO
XBnHTI8MNgxQX/W0v89TuCBZa++M1v8AyT0bAgpulmLh/VkOaWEI6kFtcvIRkBvz
wpx0DWgngAhrpUj/AFzQHDSOYmJLVKovmfDHUgtrswE4jdjy0xpOtBLCMTCZu5qp
16AgEl5EyAIDVKgugPDHWglrgACJiHhA3QHilrQTQwJc5oCXMcZy1DBBHuYu5Mok
4kXzOoYIM7CRFiXxY3y2ywQZOL2Ne2DD/aLNqDmYmREQGJLNoP7diD7EYiMREXRD
DoQVAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEHg9+WjT/xIPFF7AL8
Dru62Qdgx/w9l5/0gfNBu93LEvmOh7ZnoFiCvjltcEQ1ngj0C0oKHsyyttEZ/wBc
+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
H+GXWEHzUHpgQQHuN+zH9AUHcObyxLudDh5HoFiDWk5bN0mH9EO0oLbg0pZrCeap
idkUAYZTp8uR/wBVQ9iCjlyWWHynwGMztQdqMBLLNiKcftRN5OMjtQepAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBBxrw8ylOGJDx
2i5B8FB1pkBwbsfjY6D1C4va3FrYufnIsg3bp3nIEsM3PLoFgQWxvDHL/lp98kDT
mDBh5kRgOWmNuKDpCBqSMZaXrnqgNQxQe1AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ
EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEHwvcw8utMYEuOlBxiWkD80HsiTY3FY2
24fq5QdBlbTBukxBsG2RQatxGaWa0YSqYDZFAALxy7xc+WdMuaZ1DBB7oQEIiIwv
Ok6UG0BAQEBAQEBAQEBAQEBAQEBAQEBBUUQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE
BAQEBB8739N4wqDDdPTcg+Yg9VMuL2wfQ+PyzIO4JJDDecED6iN3/LG1BbGDEiOU
tLEQxltkUHrowYeZINKQaMfDHAIO6AgICAgICAgICAgICAgICAgICAgICAgICAgI
CAgICAgICAgICAgICAgICAgICAgICDnWh5lOcNIs24IPz6DrSN4N2J1Y/o6D1i45
rHfORovn2BB3pwM57wsiRKoNfLHoCD2oCAgICAgICAgICAgICAgICAgICAgICAgI
CAgICAgICAgICAgICAgICAgICAgICAgICAg+H7qHl1pjCW8OlBxiWkHuxQeyJuJD
myzSQbB0yP6IPp04eXARvN8jpJvKDaAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIPB7+DwjUF8Sx2FB8pB9D2gzzicIbx7P
1JQfUQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQc6sPMpzh4hZtQfnyCCQbCLwg+n/wCvuqHYOtB9FAQEBAQEBAQEBAQE
BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQfE93TyVpN
dPeHTeg9X/rzZVGjL2oPooCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA
gICAgICAgICAgICAgICAgICAgICDw+/g9OMxfAsdhQcf/X8VTYEH1EBAQEBAQEBA
QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBBipAT
hKB5gyD4/tpmlXiDYCcskH20BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE
BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQfF95DJWJF094dqD6lCp5tKE8WaW0IOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAg8XvoZqQmL4G3YUHD2FRpSpHm3o7cUH1EBAQEBAQEBAQEBAQEBAQEBAQEBAQE
BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBBmUROJjIOJBig+NKE/a14m8
AvGWkIPtAggEXG0IKgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC
AgICAgICAgICAgICAgICAgIOdWlGrAwkNh0FBz9sZCBpT46JynZeEHoQEBAQEBAQ
EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBBw
Df8A6C1/l73zsQd0BAQEBAQEBAQEBAQEBAQEBAQEBAQf/9k=
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=h2-bg.gif
Content-Type: image/gif; name=h2-bg.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/h2-bg.gif
Content-Transfer-Encoding: Base64
R0lGODlhAQAdAMQAANbj7fP4/PL3+/H2+9vn8Pf6/t7p8tfk7vX4/fb6/eDr9PH2
+vX5/dnm7/f7/vX6/fj7/vD1+tjk7vb6/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAB0AAAUVIOQUU/IwSBAIwrBEikE0
B2DfthQCADs=
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=prevSlide.gif
Content-Type: image/gif; name=prevSlide.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/prevSlide.gif
Content-Transfer-Encoding: Base64
R0lGODlhGQAkAOYAADMzM+zs7O3t7T09PaioqEBAQKSkpOvr66GhoaCgoJ6enq2t
rWFhYaOjo6WlpYGBgTg4ODU1NTc3Ny0tLTk5OZycnKKiounp6aampqurq2lpaZqa
mjo6OjIyMqenp+Pj41hYWCcnJygoKE5OTlRUVEFBQTExMUVFRTQ0NJ2dnebm5k9P
T0dHR5aWlpSUlIKCglxcXMPDw5ubm3x8fGhoaGNjY8vLy2pqamtra4aGho6Ojl5e
XpGRkaysrGBgYHl5edXV1UtLS1JSUp+fn1ZWVpCQkOXl5UZGRo2NjXh4eJiYmLq6
ugAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAZACQAAAf/gACCg4SFhoeIiYqGJQMF
i4oSMw06kIgFNwZLBAUUAwOWgkcMDhkLDjU7DAyhBQweGA4Epgu1lhQ0CQa7DhgE
BD0LlkkVBggIFg3KBrOQAzgbDUMJx8gWvpAoISQyCt4K1AiylhATKwoV6SkJuh6h
ESYjSgkKPEEnIKzvE0JFBC2hDEEQAQLJi4CGJHTggLChw4cQI0Jq9AiiBBsCPkAs
sEHABQGdPgVk8UBAAAECcvx48KDVgwAnTaJEectFTJQxT1qKccAkzJk4naXoCbNo
UQHZQvg4YPQoUkjliAQ4QJXpyQDvTJC4AFPFiBMaWu6DYcQjxIEaPgCJqJChxLcI
AgMBADs=
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=nextSlide.gif
Content-Type: image/gif; name=nextSlide.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/nextSlide.gif
Content-Transfer-Encoding: Base64
R0lGODlhGQAkAOYAADMzM+zs7Ovr66GhoT09PaioqEBAQKSkpKCgoKOjo62trZ6e
noeHh6WlpWFhYTU1NTc3Nzg4ODk5OS0tLZycnOfn56urq6ampqKiopubmzIyMlhY
WEZGRkFBQTo6Om1tbScnJ6enp+rq6igoKDExMTQ0NJCQkHx8fE9PT0VFRUtLS42N
jdnZ2WhoaOXl5Wtra1BQUKysrOTk5IKCgnh4eIyMjFdXV5iYmF9fX8jIyGNjY2Rk
ZF5eXkhISJqamrq6umpqao6Ojp2dnVRUVJGRkX5+fp+fn5aWltDQ0FJSUllZWU5O
TgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAZACQAAAf/gACCg4SFhoeIiYqGBgQd
i4tBCScQkIUEBBIGBT8HQAaWgw4OPDoNChYNDhyhAAqvqAUNFyEOoJYKMQUFFw0H
vwgtEpYWBQcJyBgDAwcUNJa8GMrLCEYJPi8EkLLUC94LGUMgJZAhBwgIQhTrCygT
EZYOGykqRAsIN0skD62DRwUmkkzg10/QjBUbRsArOMiDhkoMI0qcSFFio0cTXQRA
ArEVJk0BKgQYcCsUAwZFagQQICAAgx6tWMoMQFMAg5KLWNLcuTPDMEgtefIUkMOS
UKECEmhbdHSngB3jgDqdqeSdJQYfOMAQGUCEjX0MRYTEMTAiCxkfFE502LGiW0WB
AQAAOw==
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=highlightPlay.gif
Content-Type: image/gif; name=highlightPlay.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/highlightPlay.gif
Content-Transfer-Encoding: Base64
R0lGODlhIwAkAPcAAF9eXYiIiLS0tNzc3CoqKquqqn9+fqChoJSUlE1NTcDAwL6/
vjQ0NK+wr9TV1GRlZGlpaZqbmpKSkqenpkxLS3d1dcTExNfX19LT04OCgu7u7pKQ
kMjJyHx8fNra2tjY2Lm6upeXlicmJoaHhpCQkFFQUMfHx0JDQmtpaaOioh4dHZyd
nGJhYVBQUEpLSs/Oz46Pjpqbnrq7uy0sLHJycmZlZZKPkq2srHp4eBoZGVtaWhYV
FZeXlEZGRlRUVJSSkkBBQFJTUo6NjTo5OT8+PyMiIjc2NoiGhoWFhbi5uEpJSTg4
OEZERKmqqXd3dnV1dVxaWm9vbzAwMCUkJJGSkWdmZjs6OkRFRFBOTkJAQD48PHh5
eGtqamJjYoB/f0lISEdHSERDQy8uLj07O0A/PzMzM5ucm1dVVYGAgLGwsNDR0JOU
k6WkpMnKya6vrjg3N729vVhWVmBeXpmamYmKidDQ0FZUVJ6fnsvLy7O0s7W2tYyN
jFtZWcPDw6eopyYlJcrLytHR0crKyqSlpP39/c3Ozaeqq6WmpbKzsq+urqqrqq2u
rbGxsfDw8HBuburq6o+Qj+Pj48vMy7a1tbe2tpqXmvb19nl3d6inp52enXt8e+Tk
5J+gn21sbGdoZ/v7+2VmZbCxsL28vFlaWcLDw/z8/Pz8/cHCwcLBwYOEg3+Af6al
pZyamr2+vUNEQ3N0c7Szszc4N+jo5xgXF6SjozU1NZCOjoKBgZiXl8vNzEpHRePk
4peYl7/Av359fdjY15aVlayqrKipqKusqqupq3VzcysqKszLzDIyMjIzMjMyMicn
J7m6uZmYmLu8u7i3t8/Qz1dXV4uKimhmZtnb2/Dy8/Py8oyLi0FBQZqYmIWGhCAg
IKGjoEdIR+/w8MzNzEJCRENERObm5VVTU7y8vNbW1by9vD49PUVFRurr7DAvL3p6
efj4+DQzM25wb1lYWDs7PFNRUN3d3Tw8PDw7PGBhYOXm5iQjI8LCwjk3OcLDwjIx
MS0tLfv7/C8sL3t6eiH5BAAAAAAALAAAAAAjACQAAAj/AMsIHEiwoMGDCA8m6BAA
SYZbaCJKlOjF1zoaJRgkHLgklQkLrZ7BSkOypMlEBdjgOgIB3sYyXhSgEiXgBiY2
EwpMYMOzZ4oDrITgqFGiVkIKjChRSpQiGwIE1uwVYPVjg1Wrtq4ZgGBHCb2EEFZh
otUsQIdLTj71S1dOAhocFeLG5XLGBRkjCTuFACbEQCcWcgAQsqRBHAZn6yCwACBH
zhkKWYzwS1hF2hEDjuTEOXOm0aNN8i4cA8HtAYAzcUr0sCJFREIWGbxcQgGF85lI
oevgsSCjibYa786UCPNmRpGEADr8KzatNucLgQRZgDPJkA1dWWqXOFGLwLaEOio8
/3H0gI9tPH3g6GkCzBW9dprtJCCz74+KhD5QQKgRnzN1RZWAcw4DLPARhx3xfDGE
MSrMkpALcYwTDxYUVJgAMTEQMQYDfJRQIQVKMLGgCjvskNA5FPSAjRZDvPHGEGAw
4I8S57joohEMiDFFDiXehxADRAyhzAzL/DHFFMaoM8ORTN5TxDY8lrjDDBsxoI59
UUqp5ZZa/vFSGcgskyWXZOagApVfpqnmmmymGUQAeyGwxpx01ikBFTDQIYdRLw1B
gjwDeOAABoGoYeihh0JTSBv4JBFCDy9B4sEAH2DwgiSCAPINIG106ikHH5ETyiB7
DJFQEHU44EAdHPShgALseP9TiAW9LGDrAq3AIUMeE8wxgg4JdQCIJBzowwwiDbhR
iinV7NKKAMm6Ie0ifkQwwisAJDTCKaiYk4cwPx0wmDeyUJOLG4dwcsC6ZgTwRBdB
JJSBDEnkocgBK5hhhmeg/fICKQ2YwYm+EhjARTSQIqSKHtD6cYe+ZuB2gW68DUPF
HPlSockDLZCRkAGIMLLIIQ/rC5101FkXDxQrRADJFvW4YCpCmrixiCKDZAIxeuop
wkM36ITx8Bx70DBKGMkktIUfEwxygBkRRGDGf5WA8UU4d2QSwRwIpOJJArEQkFAU
ZvCCQJ4BBEBHMDFgw0Q4MOxBBx0NdQBBAkYsswx+ARhT4EQUnjzwACgJwJOPOxAI
LngXAPhwAj96i41QLRB4okMLX4Rxwgk9uAAGNqCDDgQZVuyjt95SbDRPCVe8Afnp
sMce+2QvMdCd7LjDbkzqbfZeUEAAOw==
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=highlightPause.gif
Content-Type: image/gif; name=highlightPause.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/highlightPause.gif
Content-Transfer-Encoding: Base64
R0lGODlhIwAkAPcAAEJCQqanpqOioh4dHVFQUF9fXtPT01NRURoaGru7uywsLEFB
QU5OTWtpaXJycq2srEtKSltaWhYVFVRUVFJTUo+Pj46NjSMiIjc2NoiHh7i5uLW0
tGZkZCUkJDo5OXp4eDg4OEdFRXd3dnV1dSsqKm9vbzAwMBkZGWdmZjs6OlBOTj8+
PmtqaigoKGJjYoF/f2NhYUJAQD49PUtJSUlISC8vL0A/PzMzMycnJ1dVVZucm6Wk
pLGwsMnKyYGAgNDR0Dg3N////2RlZJOUk66vrqChoHd1db6/vmBeXk1LS4mKiZqb
moiIiDU1NVhWVpKQkDQ0NFZUVLGxseTk5MHBwb+/v5KSktnZ2bO0s15cXMrKypma
mSYlJaSlpLy8vNjY2Keop8nJydvb20xLS2lpab29vc7OzoiJiH9+fp+gn5SVlKqr
qvz8/K+uroyNjLe2tr6+vq+vr9DQ0PPz883NzW1sbHBubp6fnvLy8sDAwH5/fpaW
lrKzsoSEhIOCgnl5eXx8fGloaHt8e4+Qj7Ozs66urq+wr+fn56SkpNbW1svMy3l3
d6GhoX18fGdoZ+np6ZOTk+/v78jJyKinp0ZGRkxKSq2urVxaWl9dXYaHhri3t728
vMHCwXh5eJSUlEVDQ1tZWbSzs8LDwpCQkMfHx6uqqjY1NSgnJ5aVldXV1TIyMjIz
MpiXl5mYmIuKipqYmLm6ubCxsJGRkVVTU5COjt3e3VdXV6SjoyAgIMPEw7W2tZeY
l5KRkTMyMsLBwX+Af5GSkc/Qz9HR0Tc4N7y9vMTExKalpTIxMXt6eoKBgaipqDU0
NKGgoImJic3OzYyLi4mIiJydnJ2enZKTkpOSknVzczw8PHN0cxgXF2BhYH5+fn9/
fyopKdra2kRFRGhmZpaXljw7O5eXl5eWlpWUlJWVlVlaWdzc3NTU1NTV1GRkZHZ0
dJuamsLCwsPDw4WEhIWFhYKDgoODgyQjI3h4eIOEg359fXx9fC0tLScmJoaGhoeG
hqWmpZGQkMrLymVkZCH5BAAAAAAALAAAAAAjACQAAAj/AG8IHEiwoMGDCA8yAJTh
nZ9kPiJKlPjC3h8HBKAkHAhCHqlicDSF4kGypMk2pXaw2hco3MYb2/L42rThwaQd
OHPqFMCMnYUPHAg0SThGyps3bQS8IkeNV5AgT57geRS1H61naAJFmeESIRljk261
gtZokQgjT08YmSJGrREj61jkgGADQ8I641BZQFMHBhJMWdjMQZDlixnCmJAgyTEm
BgZ8CVG42ofGDhInOTJHOnQihxYqCDLncEIgRAoT+RLC8PNiUYNLonNMuRK6DKHO
ogl8AqLgQkIkjZBV+wZbdCI6nePww52ZAABT3HAljADXzj9QscNUCc1oT+jMURjY
/zjGZUDCCQ0CobgcRbQXKaGtMMEd5QANDyQGYEsIwcmsAyokUckYSSRRCCInJNHH
HwgIOEMI+A0ggQQJyTBGCAvI4AEQHHKIAAIegojBMjV0cMKE5iEExQoe9KLAKVx0
IOOMNM5zAS4ITDihAhtBUUN5J+oo5JBDcvHSDargkCORTE54wgA8HinllFRWKSUF
TIhTjidDdOlll5BAYoUsFTRTwFAveTBKLedckYoBwvwg55xzBuNMD+1oAA4lLw3S
jRhfGGCGIlr0YOihh0pCSi5exNKFGx4kRIEc6aAjhyTu5FHFEU8dccRUnsJRRgJY
BLBFJhEkBIg/ioQhCix8GP9CBBFpEcHWCbMSYQkYS2RyTQEJ6cMJFcRgoYwARRSR
hmAIpGFYs8kWocMZI7hAQULxJKABFmsUEY0O4G52gg6fIQAuuNPowYItfCL0iy4b
GALGHefqMJu5to17LjCCCEGADQlpw4cUlvBD77nHjaucvjosMUgn2UAQKUKC6LpG
F9LUq5253ZkL7hZuOGAOAKskRA8YAXQh7RJLgPueufKNu8QWatTjCAPDkJBQCTrs
okYFSjBxhhJKHHiCEgsiEDQ895DBAAY4tHDeGXqIUIIjQmSd9YdbI6COCwVMAAA+
OOCgM0JNkOFIBATQAMDbC8Qtt9w2pHBM2WWbsJE1BHgbAwTZeAcuuOCQvQRFE9wM
rjjeLZCgt5WQFxQQADs=
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=articleView-tabs-bg.gif
Content-Type: image/gif; name=articleView-tabs-bg.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/articleView-tabs-bg.gif
Content-Transfer-Encoding: Base64
R0lGODlh6AMdAMQAAPP5/fT5/dHm9vj7/tfq+Pj8/tPn99Ln9tbp+Nrr+fT6/djq
+NXo97a24c/k9dTo9/X6/vX6//j8//X6/c/l9dDl9vb6/vf7/vb7/gAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAADoAx0AAAX/YCSOZGmeaKqubOu+cCzP
dG3feK7vfO//wKBwSCwaj8ikcslUSZ7QqHRKrVqv2Kx2y+16v+CweEwum8/otHrN
brvf8Lh8Tq/b7/j8tcDv+/+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2e
n6ChoqOkpaaEA6mqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3O
z9DR0tPU1dbX2Nna29zd3t/g4eLj5OXWF+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+
/wADChxIsKDBgwgTKlzIsKHDhxAjSoSHoaLFixgzatzIsaPHjyBDihxJsqTJkyhT
/6pcybKly5cwY8qcSbOmzZs4c+rcybOnz58dLQgdSrSo0aNIkypdyrSp06dQo0qd
SrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy1YphLdw48qdS7eu3bt48+rdy7ev
37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM9+dwLmz58+gQ4seTbq06dOo
U6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry4cdIKkitfzry58+fQo0uf
Tr269evYs2vfzr279+/gw4sfT768+fPo06tfz769+/fw48ufHz2A/fv48+vfz7+/
//8ABijggAQWaOCBCCao4P+CDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKI
JJZo4okopqjiiiy26OKLMMYo44gA1GjjjTjmqOOOPPbo449ABinkkEQWaeSRSCap
5JJMNunkk1BGKeWUVFZp5ZVYZqnlllx26eWXYIYp5phklmnmmWimqeaabLbp5ptw
xilmAnTWaeedeOap55589unnn4AGKuighBZq6KGIJqrooow26uijkEYq6aSUVmrp
pZhmqummnHbqKZ8LhCrqqKSWauqpqKaq6qqsturqq7DGKuustNZq66245qrrrrz2
6uuvwAYr7LDEFmvsscgmq+yyqRLg7LPQRivttNRWa+3/tdhmq+223Hbr7bfghivu
uOSWa+656Kar7rrstuvuu/DGK++89NZr7734WovAvvz26++/AAcs8MAEF2zwwQgn
rPDCDDfs8MMQRyzxxBRXbPHFGGes8cYcd+zxxyCHLPLIJJc8MAMop6zyyiy37PLL
MMcs88w012zzzTjnrPPOPPfs889ABy300EQXbfTRSCet9NJMN+3001BHLTXMD1Rt
9dVYZ6311lx37fXXYIct9thkl2322WinrfbabLft9ttwxy333HTXbffdeOet9958
9+33310bIPjghBdu+OGIJ6744ow37vjjkEcu+eSUV2755ZhnrvnmnHfu+eeghy76
/+ikl2766ainrvrqrCt+wOuwxy777LTXbvvtuOeu++689+7778AHL/zwxBdv/PHI
J6/88sw37/zz0Ecv/fTUV2/99dhnf7sA3Hfv/ffghy/++OSXb/756Kev/vrst+/+
+/DHL//89Ndv//3456///vz37///AAygAAdIwAIa8IAITKACF8jABjrwgRCMoAQn
SMEKWvCCGExgBTbIwQ568IMgDKEIR0jCEprwhChMoQpXyMIWuvCFMIyhDGdIwxra
8IY4zKEOd8jDHvrwh0AMohCHSMQijpACSEyiEpfIxCY68YlQjKIUp0jFKlrxiljM
oha3yMUuevGLYAyjGMdIxpIymvGMaEyjGtfIxja68Y1wjKMcoeiAOtrxjnjMox73
yMc++vGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSclKWvKSmMykJjfJyU56
8pN9bIAoR0nKUprylKhMpSpXycpWuvKVsIylLGdJy1ra8pa4zKUud8nLXvryl8AM
pjCHScxiGvOYyEymMpfJTFWGAAA7
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=articleView-tabs.gif
Content-Type: image/gif; name=articleView-tabs.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/articleView-tabs.gif
Content-Transfer-Encoding: Base64
R0lGODlh6ANPAPcAAP////v75e71+/j7/tHm9vP5/fT5/ba24fX6/tDl9trr+c/k
9fb6/tjq+NXo9/f7/vX6/dfq+NPn99bp+PT6/dTo99Ln9vb7/s/l9TVnmPj8//j8
/vX6/2aNsmqOrWuQs5+2waG4z5izzb3P4cnW5MbU0IakwYSit3+gwFB7pk56pU97
otXi7uHn2+Tr8aS8067C1qzAxl2Fp1qDrF2FrUJxnUFwn0Jxn9Pd1tfh6snZ5+7x
4OLs9PL1+HiauneYsnOWube34ZGsvJOuyIupxs3O67zM3bDG2vH0+7nKy7295Lq6
47m54f7+/u30+vv75rm54ri44bi54u/x+MfI6cjJ6e3w+cDA4e7w7u7w+vz86rq6
4by847+/4v3+/ufr8u3z+r294uzw+cvN68jJ5cPE5enr7Pv75/z86eXr9Ly84vv7
6O/x+ebr9e/x7tTY7uDj7/39/ubq9NPW7P398rq84uXn7drb7/X26e3w+ubr9sPD
5Ovu8e7w99TX7drb8NPX7t7f88HB5Nja7f398be54t7h78vM6r/A5AAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAADoA08AAAj/ADkIHEiwoMGDCBMqXMiw
ocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMlSoYaXMGPKnEmzps2b
OHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLPe3MC1q9evYMOK
HUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sGGyAxIrXsy4
sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnm0ZSREl
B6IEOcC7t+/fwIMLH068uPHeSoogYWwbt+7j0KNLnw48+fLFzXPvps69u3fe1pnf
/9b+vbx54+Gxj39+vr178Mppy59Pv779+/jz6y/9oP+DPEtA4UcbAhRo4IEIJqjg
ggw26OCDB8oBCBRLiOEfgAISCOGGHHboYYISUmhhfxgO+OGJKKYY4YQVXhigiSrG
KOODIbZI4osazqjjjgXWOKJ/QAYp5JBEFmnkkUgmqeSSTDbp5JNQRinllFRWaeWV
WGap5ZZZXuDlBVUUkgYYPJa5oxN6SEHFl2GOaeabMaKpJptikgnnnR/KuaaXbdqJ
558Q6kmnm4AW2qCgXyaq6KKMNuroo5BGKumklFZq6aWYZqrpppx26umnoIYq6qik
jsrAqQwEMYcThrbKoBNvBP+BqqqsumrrgbDKeiqtt/YqQK6zrurrrcDuKuywrhaL
6rLMNuvss9BGK+201FZr7bXYZqvtttx26+234IYr7rjklmsuuQiki8AByPp6gLrs
tnvru+nGK6+r9K57r6352rtvofmqK/DABBds8MEIJ6zwwgw37PDDEEcs8cQUV2zx
xRhnrPHGHHesMQQgQ+Dvv38eEPLIJN9pMsgop/zmyiK7DCjMLcvMI8wh56zzzjz3
7PPPQAct9NBEF2300UgnrfTSTDft9NNQRy311FRHTcHVFARhM54HYK311nB2ffXX
YJspdtZlv+x12mZj7fbbcMct99x012333XjnrffefPf/7fffgAcu+OCEF2744Ygn
nrgBjBtQM9spHtD445CfKDnjlFfu4eWOa64j55l7viHnjZdu+umop6766qy37vrr
sMcu++y012777bjnrvvuvPfu++/ABx+66A+CTnyMxh8f+eTKL4958yiSHvz01Fdv
/fXYZ6/99tx37/3uBYRfAOUiZKAiDzP0ykIGLyx4gPiPl59iBxnUT8SCKHSAYAco
FMg/gusbwYbW174EvS98lOMBEOo3AxYYSgQq4Br8TiQCERgogimqn/0+pIL+bW6C
HqrgBWNUvgyoQIAQ7NALMuBADh1QfDCMoQxnSMMa2vCGOMyhDnfIwx768IdADKIQ
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
xZnEJRvHfVzIjVzJnVzKrVzLvVzMzVyxCQgAOw==
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=rssbox.gif
Content-Type: image/gif; name=rssbox.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/rssbox.gif
Content-Transfer-Encoding: Base64
R0lGODlhXAAdAPcAAPT5/f///9Dl9hw/lOjy+/P5/fD3/NHl9t7t+fL4/enz+9nq
+NPn99Tn9///7+fy+9vr+P///vH3/NXo99zr+P+QYf//tv9tI/+CHP+BHP++afxa
HP9/Pf/Div93Iv+3X/+pdf/npP+MHuRuMP6QPf+zQv9sGf9cIv9/I/++a/6mOf+M
N/hPIv//0f+WKP9qGeh4LPxpGv+UI/98MP+RI/h9NftQGf+mRv+UWP///P/IiOFi
LPuWL/+UJf+bRuhfFf+DCf96HP90Kf+tW/+/Uv+QKv/GdOVgEf+6hv+RIv+JIP9z
Kv+VJv+XKv+CJv9ZFv92Gv90Jf99Gf/+yv9vF//Cgv9qJv96O//Aaf+RGP+JQf+X
PP+EKf+UH//Gg/9GJv9zMv//yP+XI/V0Rf/Ojv+ZOf+RFf94Mv+KSP+LGf//5P+k
Pv/xwP+QHP+JIf+OJv91G9Lm9v9jG/9sFP5jMPNpH/+zXP96H/+vev+BKfxcEv90
F///8eqMH/ZfFv9yKf9+LP9aFP+DN/9oF/+DH//Osv9+KfxRGf+DKP+6aP+KHv+V
Mf9oHP/AZP5hHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAABcAB0AAAj/AAMIHEiwoMGDCBMqXMiw
ocOHECNKjFgAwQQBGDNq3Mixo8ePIEOKnICgwEEFCwgYAMCypcuXMGPKnEmzpk0D
BBYoKFjgwEqbQIMKHVrTwAEABCEQIMq0qVOaDygQZJDgqdWrTBMwICgAq9evNQVw
BUu2LEuxA7uaXYsVrUC1MqeAoSMECiIUS2ikEdSCLVu3AeDGPBNoDYY6eYCI6SGD
C4mZAyIPcCm5ZWWYkZtOlglYMMwnYwYWEmEmC5MmUiBbZrl5tczWTGG/7EzTkBw8
OtgIBNGGkBInqlkLpxxc80zaM/tQqZJokRGBdjzs+VN8s2zZli9fZp05e/eYyGUG
89ESIUCEFCVyOEBj4gLk7QC+x8ce33X9+/db0z87dmaUOWV4IRAWQwTQgSODBIfd
dZh5151kD9oHU3gxufDGB0T4wIcaNTgQxg4xKNggcS/pNyKJ+E3Yn0xdJCGQBo0E
gAMZAWygR3Ul5qgjfta5ZiJnK8bEQwYCbaFCAEhUEMAMXxRX33bwSQjflFG6RCFM
K7hRhCIcvMDIET/YcMgJfq115Ush3ADIHVfAYcUIfrAAgwVlmnVmnXgeN1VVefYp
UwJxJLWUn4S6FBVBPf1UqJ9GIUUQSgRIsCieEuS0k0EVNSDSppx26qlHDZQ00aik
lupQQAA7
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=viewAbs.png
Content-Type: image/png; name=viewAbs.png
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/viewAbs.png
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAFUAAAASCAYAAAAqqJKOAAAABGdBTUEAANbY1E9Y
MgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAPoSURBVHja
7JhPSFRRFMavKYbikDSijDgkBEqSKAmBEhgKQaArMWilEBS1i3bhMtpVixZRBNmm
wGilq6BIEIXAEAzCgcgYUQoHBENREDu/M+9Md2ySsZlcvQOPe+e+e8+f73zn3Jkp
2d3ddaEUV0p8UK89mW2R4aw85SE0B5IFeT48vtqxmQWqAPpMhuEQn4KAvSjAfj0S
ADocAlqwNMvzkMmRYOHcQU431UcOzVNsHaa9AqXbB7XCfzMycMpdv3Aya/eD4XZ3
qTOuAd7qa/ovgfa21urji9qKVeV1vrK8VM/Ho5VF86mrKeraG6vz3V7lg5ol7+Z/
qCKcRGz+9tN3l1hed/cmEjoWHdTTdfr8qzTUVGriK46WFs2nofONriFacaAzZbkW
5xbX3JCMnc1R91YA7pRsJVMbLrW+7aQR6x4Dtq8jJuyoU9A59/z9oqzV69mbo3O6
9+7lVtm/oOepgGik3N15/TnLps8G5uj6zZYa1y86OT8xu+ymEymtlOHuRtXFOvph
tbEb38Y/rmTm7CcWqwgEPa+mk25je0dtEgss5/OjN19c/5mY7sM2z+2X82oTXewh
Vt9Pk5xM5QAGAROwMPgucGhsJplVGhjDMZwgQECD0ZzjPU6yjg4bTVc2S2vVQR7m
vpBQkriwsq7MQacFzDpAA6z5xjg2s5Q5D3Nt34zExRxArLTN73RyEgL+d7e0upHR
MR2cAQ8AJVbO41feTEUw3iVZHuyKK8iWkWRqM7MHI7xjTPe0Mg0Y5zDIeoPst3lF
0E72ZpegcHZ0clF19EpPNwYaqLCNByDaGo9J4n4owCQAX33fkoFN6/uAY+2qR85a
ZSHHxU5nJO0/QBGP7d0IQEutb+kaI1UDo7GZi6X7gppWsq1BkCmM5ZLNrR0ts1x9
maCjkaNBaTarQ7l0WR+lTfhrflXYRaQ2gyQnXsxrm4FlALL6c3vfXqcMl8qiDcx9
W8u0i3wFPGgBsDvdayvVbt6gpmm/qk4YE/YKbCEg2AIzmmMRLRNj46AET3ZxJqNr
MvUHUNa7CVR76olqXaNc/X7LSEJmFlI6b4pFskp8M7WTaSXoMH17hSrwq4t2BXtH
BlrUT8CfmF3RmKzfIktSAW0yJyY/yQcCFTAx4N/0MJPPNtJfcBBAKTsM4QiP9qag
JHPpshub/kVgVu44HZcbl3ckxxKGfuwZ0+PBrTwu4NslxJy9ToDzfbU2Yu/RQSU0
BO3q/njC9cgFxjuf8TCRJLG+FMRXI3P84i75629/+UX1VOZXwh9FBctP+XYUsdt/
KsSjKDKV+Uol6I7KMBpiUvAfKjfCv/7+919/oRRPfgkwAB2uXl9RhoJzAAAAAElF
TkSuQmCC
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=downCit.png
Content-Type: image/png; name=downCit.png
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/downCit.png
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAGwAAAASCAYAAAC+Tjt8AAAABGdBTUEAANbY1E9Y
MgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAT5SURBVHja
7JlfaFt1FMd/bdPUhsUVEzYzOi0ILQ6Dw4LQIUwsCEL7VBzoiwXBoW/qm+6hgvrm
kw/iEOxeFFbEh+5lQsaGI4FhJaWdo5FhS+LalEbTJjS2W6nnc3J/15v0z1JobQY5
8OP++d3f75zzPd9zzs1N0+bmpmnIoyM+78X5ixOn5PCiDH8DmrqRGRm3vn6nt8RF
k80wCda3chhu4FO3QXtNgvZHsxOs4Uaw6lp6ZHzJSbNz46XDtuhkKGBOd3Uc2l6h
oF/HfugO+FsOAqKz3h7W7p3pPhE0Hw50u9fJ2by5MjFv0rnVAwvYub5OV9dB7kUg
z/Wd1OCsrm+IX/dMbGrRDJ/t0vkvrqR0rv+54+ZyIr2rHgLT1xMyqXtFF5sLQ8+a
cdkTvPZZjngzbFvB4K9+uquGfTDYvS8MPEyBiO+++oyCS2AuXZ9VsJHRG7M6kL7u
kOmPHnvofp3hgAa/ve2/jPr0hzvmmhDgf3lLrJZ0riQOFXR89mbUDPSeUCcxEmYR
SFjMPea49/5oUtd+/kZUQJkxucK6gkSwLycyep5ZWlXwmAMk9q9m7lsvd2k2kAWJ
mZyShz0uDJ3SedZyz2aR1ybWoGO7zGMdJPTKQG/EDIr92DH+67yeI9LkNVsyggN2
IzyDHwTdViGO1gf8shl2RgIPLtjN85euz1WsI+DYG0/lFEPWkuk8j50WP6801xJV
C0D4iF+Zx6CU4Dg1G3Bj01lVjpHcQymA26NlHc8sFdeV4avrD9xS5BX2w3j2H4un
XZ0Yj2OszRXWNEjIGScjYlNZnSutbezYX+KppS33EwKYLWn4CYC2PNo5zrEnFGwz
rzjZZ0smR4LI8OrCj5n5gmsTVcqbnfjCWuxnDL4QcfWCb3WwHpphXiHtUXr66Q5l
U8wJQGeoXRmJMzhGOekURtrzdqcBkwkYaQFiD+5ZNlf3GVhqs4d9ynqL0luOaTC9
wjz6bN8gmHsRgLFBhpx2vc0ab99DwgW/W4Hssbq/P991VI8EBRl3MtHaDjG81eEJ
2Ts2vahBxseEQ5pqqSnDYAsjOZdXh7w1O+D36T2ELMIgHCz3Pp8wJ6yMtc/UmtGs
9ZKFe5QuGM7e8R0c2k0ACHu8b3G1vNEBIkGE+bW+eJUcf+3+9rhT9lv7Pv5uyqQk
KynBZN2eMswym96AofQS25MYnJdL0aKr8HWHocxRfsigxI29gYse2/RhNWQhezRj
JXhkdU8k6AIBGwEVBlOCyOTtehgM5hn6ILZZIn70/dS2YMP8XHHNJQ1YQJicWasA
n4xgzvtWCRb0L8og5/3R44rhbgGH6N2RYAVRq6VlZGQEMIbkPOrNmic7HlMwWn3N
CshYPKMsX8j/o00YR8NOGttSdH9j07S2NJnJuWV9Lie9CgevJhcq9p2cXTYrpfuy
vs0FvMnJ5ElxjkwGNILCnj/e+lOdzubXNIAR2ePadJkk6GDuLyGI/gZq8ylZFuTZ
25mVLaUvNV9UIJ6SZ5dLD8yY9B1sYe2KXLMmK7Y/HmhVPcsy9/OdcnDBgipS9iGv
uhGeY+6Xu3+rzb+LDvT8ll5R/9F1W84pj/jj1aW/ip01zBG0o6KbCnI1ma2wX8j/
iX6aOn9x4hu5frvxQaGupShvrUHbw2428Kh7uem+dEjkRvnt2MCkrj/+vlfxtd75
CNz4e6U+g7X175WGPBryrwADAMfY9Ie9kVBHAAAAAElFTkSuQmCC
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=showAllThumbs.png
Content-Type: image/png; name=showAllThumbs.png
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/showAllThumbs.png
Content-Transfer-Encoding: Base64
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
ACBQ0k+WM4v1AAAAAElFTkSuQmCC
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=h2-bg2.gif
Content-Type: image/gif; name=h2-bg2.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/h2-bg2.gif
Content-Transfer-Encoding: Base64
R0lGODlhAQAdAMQAANHm9vj7/vP5/fT5/dXo99Pn99Ln9vX7/9rr+dDl9vT6/fb6
/tjq+M/k9c/l9dTo9/j8/tbp+PX6/vX6//X6/ff7/vb7/tfq+Pj8/wAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAB0AAAUY4DFhUBBU1iJRyjAIAsJc
EfEUBgAkThMCADs=
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=issueNav.gif
Content-Type: image/gif; name=issueNav.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/issueNav.gif
Content-Transfer-Encoding: Base64
R0lGODlh0wBXAPcAAPb6/f///9Dl9hdQCLTT6HKs1ABrAApUpICn0Pv9/vX5/fH1
+fD1+v7//7XT6HSt1ANtA8zh8Oz0+jGIM/D0+PX5/MLb7fT5/cHb7PD2+oy83PP4
+jSJNo693e/1+vX6/eLu99Dk1p/IpJTBmN3r9eLu6Mfe7+v0+t7s9rbU6cbd7vD3
+5bB36jNrcHb7b3Y69vq9UOSRODt9uHt9qLI483h8PD1+ePv96TJ41qfXF2hX4W3
2rPTudzr4snf79Tm8pnEnoi52+Xw64u73Nbn83qyfSN/JIC02H+1g/P4/Mvg7+rz
+ejy+Rp6G9zr9e71+9np3+Xw+FGaU7PT6M3i04W4iXyzgHev1XWu1e30+ujy7qXL
qsvh0LnW6pTA33iw1u/2+7zX67HStubx+PT5/JzF4bXT6cXd7gZuBsDa7IK12cTd
7rfV6eny+dnp9O71+rXU6cng7/D39/L3/LnXvr/Z7AlwCUCQQZ3G4uTv9+vz+S6G
MN/s9pbCm9fo89Hk8Yu8j06YULvX6vH3+9Xn8x18HtXm8wxyDMjfzdLl8imDKsPc
7dPm2QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAADTAFcAAAj/AAMIHEiwoMGDCBMqXMiw
ocOHECNKnEixYIMFAjJq3Mixo8ePIEOKHEmypMmTKFOqBLmgAUKMHioAmEmzps2b
OHPq3Mmzp8+fQIMKHUrUZgUPAhYgFMCgqNOnUKNKnUqVJwMBSxVU3cq1q9evQRVg
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
d1+N2kGmlteiG/3oVUvrXJfO9KaLLSAAOw==
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=toc-h3-tl.gif
Content-Type: image/gif; name=toc-h3-tl.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/toc-h3-tl.gif
Content-Transfer-Encoding: Base64
R0lGODlhAwADAKIAAGmCuoOYx7zL6+72/I6izAAAAAAAAAAAACH5BAAAAAAALAAA
AAADAAMAAAMGOBJCEAAkADs=
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=toc-h3-tr.gif
Content-Type: image/gif; name=toc-h3-tr.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/toc-h3-tr.gif
Content-Transfer-Encoding: Base64
R0lGODlhAwADAKIAAGmCuu72/IOYx7zL646izAAAAAAAAAAAACH5BAAAAAAALAAA
AAADAAMAAAMGKBNADCIBADs=
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=gradient.gif
Content-Type: image/gif; name=gradient.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/gradient.gif
Content-Transfer-Encoding: Base64
R0lGODlhBQCCALMAAP////T09PX19fr6+v39/fj4+PPz8/b29vf39/n5+fv7+/7+
/vz8/AAAAAAAAAAAACH5BAAAAAAALAAAAAAFAIIAAARi0MhJq70y6M27/2DYCWRp
nmiqmkfrvnAst0ht33iu10Xv/8CgsJcoGo/IpLI4aDqf0Kh0+lRYr9hslsHter9f
gnhMLpvPaPJizW673YC4fE6v2+/4vH7P7/v/gIGCg4SFgBEAOw==
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=tray-bg-r.gif
Content-Type: image/gif; name=tray-bg-r.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/tray-bg-r.gif
Content-Transfer-Encoding: Base64
R0lGODlhBQDoA4AAAOTi4v///yH5BAAAAAAALAAAAAAFAOgDAAJZjI+pG3DgGpSw
2ouz3rz7D4biSJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8YhMKpfMpvMJjUqn
1Kr1is1qt9yu9wsOi8fksvmMTqvX7Lb7DY/L5/S6pgAAOw==
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=tray-bg-l.gif
Content-Type: image/gif; name=tray-bg-l.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/tray-bg-l.gif
Content-Transfer-Encoding: Base64
R0lGODlhBQDoA4AAAOTi4v///yH5BAAAAAAALAAAAAAFAOgDAAJZjI+pCNwGIoyN
2ouz3rz7D4biSJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8YhMKpfMpvMJjUqn
1Kr1is1qt9yu9wsOi8fksvmMTqvX7Lb7DY/L5/S6pgAAOw==
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=handle-bg.gif
Content-Type: image/gif; name=handle-bg.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/handle-bg.gif
Content-Transfer-Encoding: Base64
R0lGODlh6AMXALMAAP///+Ti4r/T465jLvr7/dnl79Ha47WKa8PT4N/p8QAAAAAA
AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAADoAxcAAAT/EMhJq7046827/2AojmRp
nmiqrmzrvnAsz3Rt33iu7zxGCL2gcEgsGo/IpHLJbDqf0KiMUEhIr9isdsvter/g
sHh8ohoC5LR6zW673/C4fF4xB9D0vH7P7/v/gIFNdneChoeIiYqLjI1ZVAh3hY6U
lZaXmJmagoSSm5+goaKjpKUznZ6mqqusra6vhlQHkrSwtre4ubq7RrIDtKm8wsPE
xcbGvr/AeMfNzs/Q0YzJysDS19jZ2tte1NW13OHi4+TlMd7fwebr7O3u5ejpk+/0
9fb3uvHyzPj9/v8AKaFaZi2gwYMIE8IZSBCcwocQI0ocVOBMw4YTM2rcyHFKxYsX
cgWIHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMq
XSrUIsinUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3
rt27ePPq3cu3r9+/gAMLHiw3AgA7
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=previousFig.gif
Content-Type: image/gif; name=previousFig.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/previousFig.gif
Content-Transfer-Encoding: Base64
R0lGODlhQAAoAOZaAABrAGaZzCQrThdQCMvhy////2eazANsA8vT2n6nzy+DL7vM
uyyCLNzc3drc2n+n0IWvha3C1jyKPMvUy7fH2Iar0ZOz0lOWU9PX3I+1j5e5l7PF
132rfQhvCHqkz8DM2dbZ3CqAKnClcIqyijmJOc/V29XY3G2jbdDW0KK71QpwCtrb
3XipeCR+JGqbzaG71HOgzhd3F3ejztDW23Kmcr3L2Hymz1GVUaG+obPIs8bRxq/D
1s3VzcnS2rDD17bH15S3lIexh5Gy0nShzqm/1sfQ2kmRSaa+1Yyv0UaPRrnKuZ+9
n8jR2qbBprbJthp4Go2v0myczWmbzMPQw9ja2AVuBaS81bvK2B97H4Wr0N3d3QAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAEAAFoALAAAAABAACgAAAf/gFqCg4SFhoeIiYqLjI2O
j5CCPRsRNRiRmJmDGzABnp5QJZqjjBhIn6gBURGkrYYgHqmyR661WhaysgZFtqQI
BrmyFYQCxQKYx5opsgUBzagGJoPJWtS9iRWpzc+pV9Pf1eHG4YLHxeXn5OTjgzao
28E74Ovm09TJ9eXq+YUJ2s65fthLR28cv4P79BUSwgxgKibzwFkT9+1eQoWDKAST
NYSYIXwVE1q0GLGBjI2oiHgsdI+gNXwuDRIc9AEYygcrrpHy4WLjgxk6WyF4IEuK
lQZBXTWgYCFBgiwvECSdSrWq1atYGSnJAAHHhKyZMsQAQJaskSlgHU1IUrYtABUQ
v9IuQtHCrV0WchNdsGv3QI68hhYc4GtXAqEBiAdgUqxJhF0CACC3PcBjEGMtl69K
cAtZstsllkNjHp14tCDFiE+nNm269KAQbTsTDiK6NWrLlxnfPs16dyEGnCPzBYJ7
te3SvpP35l3oxmPhbp3UFp2ZdOjcy5kP0kDY7pPDhnRfX44d+3QHWLq35QC+UG7j
mXXDR258UJPB6hVQAXxoRIfuCujAHyILKGBXFTQ4MGAiDmhwAQMMkHDCAgtWmEkg
ADs=
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=nextFig.gif
Content-Type: image/gif; name=nextFig.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/nextFig.gif
Content-Transfer-Encoding: Base64
R0lGODlhQAAoAOZYAABrAGaZzCQrTv///2eazANsA9rc2n6nz7vMu3+n0Nzc3S+D
LyyCLMvT2q3C1jyKPJOz0oWvhcvUy4ar0VOWU9PX3I+1j7fH2Je5l7PF13ejzhd3
F6S81QpwCnqkz22jbQhvCHClcLDD11GVUcDM2bbH142v0s/V24exh5S3lH2rfdrb
3XOgztXY3LvK2GqbzbbJtr3L2K/D1hp4GsnS2oyv0XKmcsbRxqK71aa+1c3VzZGy
0iR+JMjR2qm/1qbBph97H0aPRsPQw2yczcfQ2oWr0DmJOdja2KG71HipeNDW0CqA
KnShzqG+oZ+9n7PIs2mbzNbZ3IqyigVuBUmRSdDW27nKuXymz93d3QAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAEAAFgALAAAAABAACgAAAf/gFiCg4SFhoeIiYqLjI2O
j5CCNBkOMRWRmJmDGSwBnp4mJ5qjjBU1n6gBQw6krYZRHqmyOa61WBCysgREtqQN
BLmyE4QCxI3FrTiyAwHMqAQtgwLIWNSK1poTuczOny7S1YLI0+PS5NiRV8HcqDLg
5dTw4q4H282pJeDhxefx+qQ7lt1L1UMfv3CG/LW6EEwWE2PiDs7bN5GUAg0NUfmA
OJFcxXHoIpEAljHBil6tRLxomKAKSlcNEsiCwkHBy1oKLkA4cKAIkgY3gwodSrSo
0UxWLERoIuGoJgsbAEiVSkWI00cSgkzdCqBDhKuMlPDgSjYJWEUUyJIt8OTsIQQF
hNSSfcAR4aKQkUKQHQCA79YCOsz9u+bqgVq+fqc6eddx2sdzpJbIRbwVBWOKHRHi
hcTgcF+uKQzug/zR1Yi9n7nCEC2xkEJSGOSSncHRsUKJmx8ZACJ7q4q6IMs1bvUj
bu8FR9wikgJC9oIbyhMhWEB2ig0D0RUZwECBAQMjHxBkHz8qEAA7
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=showThumbs.gif
Content-Type: image/gif; name=showThumbs.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/showThumbs.gif
Content-Transfer-Encoding: Base64
R0lGODlhdgAmAIABAK5jLv///yH5BAEAAAEALAAAAAB2ACYAAAL/jI+py+0Po5y0
2ouz3rz7D4biSJbmiaYPwAaAxsbu9VZvrRr4vOH79APmDruYr8WrBY9In8uolD2R
U93NGiQ5dbyZkpvYeolJrlMMvmZPXzNZ3SWDx+7yWW6sr03X+hgeJkdH93XnVyio
0jcItyhoSHjYtYiYWCK1JTW5IBbV0naDiScaujd0ipqqusra6voKGys7S1tre4ub
q7vL2+sLImMKARUnZFOcUsSBZmwhPFKkKVoWiNXmRTzlyWSVRMX2uAmq0CmeZj53
7qg4R/mHXG5YyWith+p+B4gQ/6beL0lvCL5++sJJGgfJ3SBk0JqMKkfOYB6E07w5
LPUro8aNEgygePwIMqTIkSRLPuOIMuWqAgA7
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=hideThumbs.gif
Content-Type: image/gif; name=hideThumbs.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/hideThumbs.gif
Content-Transfer-Encoding: Base64
R0lGODlhdgAmAPeXADNmma5jLv///zVomq9lMPn6/NHZ4ezs7eTZ0ViBqryAV1uD
q+3s7Lt/VFeAqc+jg8aXdtS2ofr6/Iakw7PD0/z9/f3+/r+JYnmZuay+0KO4zGaL
sNe9qtrCsfr18unj3vL1+d/j55Ksx2OJr/j6+6W5zXGTtfv29PT3+buHY83W38iV
ctzHuL+HYJiwx7BoNbp9UsvU3tW4o93IuuPm6dG/s8qZd8PQ3FJ8p+PXztje5MWW
dHWXum+Steff2uLUykl2o/z5+PH09rBmM7+Qb+rh3K9lMrNuPsDM2da2odKxmrvJ
1+be16i7zk15pTZom86pj3aWt9GuljprnNGnifz6+LFqN+PVzI2pxmGHrcqaeMST
cEJxoLDB0nqbvK6/0VaAqbqEYOnk4Nnh68/Y4OLk6NXAs+rm4zdpm1iAqdrg5caZ
enucvUd0ord+VqG3z+zn5NvPyM+rks+rkW6RtLl+VLVyQmSJr7ZzRY+pw9a6pjxs
nZSsxcKPa/X0897k6+Dk6tnAr7nI1rd3SdKoit7Mv+rr7MCUdoypxc6ojZ2zyeHn
7pKrxOrk4bh+VXqbvXKVuHeYuOHk6Ll6Tuzr6cORbbHB0+7u7gAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAEAAJcALAAAAAB2ACYAAAj/AC8JHEiwoMGDCBMqXMiw
ocOHECNKnEixosWLGDM+zMEhwowPGkOKHHmJg50AKFFWYkKypUuHH/qknBnASoSX
OHMOPDMp5ZE4RcLMlBIxAEGjl5AOVGqQZtKJTB0ajaoQwkwiEiqYMZKSwA+ITKkK
FHt0KVSKZA0iIJAyBRwBAqqsmXkBbFmUY1Pmpap05lizNJH6Tap3b96nhNNCSVmn
EVy4fg51FfMw8N++iDP/3fwUs+DLgM2W7awZ4YWUNQo8FmChzEwWlUdPBTxYdObZ
oBHjJr15MO60AmGkdCNndRJHM2XEFr17d1PbzXXn5k39M+aEDWZuWf2AZqDlvW+L
/x8t3nN489Otkze4Y6aN1VRoXgEvPbFgvAWv69b7uXPh6775B1wHM2mxGiEz4aHT
giMxMEhKK3hwggdBdJeSEgxmqFEhbAU2kwKUaCjiRXq84CFKCvgw4ooVIaBAYEPM
wQCLNE7EQAcQNNBAC4kgUOOPQAYp5JBEFkRGBhosEUKRTBKUQRsARBmlCTo0SWQI
dEipJQB7aGBlkDTgICUXN4yRhZYuRAQAQWte0uZAbxq0pZsTxenQmnYqhIGWPWRl
yRNSDhADRHHmKZChbMJZJ0WIGmTAAFLesQhcBXih5QaEJhrloVJymuebWh6q6JZt
hupmp55ySuepjTIiZRp/rN4mRBSBSvIQqaKCuuquovZKp66l5jqqoon+yitCG0j5
hWqPWQCIloLcWiyeo5pK7K7UCrtqtsb2amq2jQoEhpQOiLDaGw5oWYK0xHLLrZzX
uruttt3WG6yuCSWgJSSrTbBlF+x6i+3AxQ4MrMAH03tvwQZFouUjqyGypQoBz8tq
qZsWhO+2nQb7K6r4fvtxuBRoycZqWGgJxJc0HuCElDyAgAIIJPgrpSK3kqrzzjz3
7PPPQKNqEBKQ9ryAISzX2MQUPC+gRtI/GrAAqWjwcQDUQB5AAQYJJDBCHgYgFBAA
Ow==
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=articleContent-bg.gif
Content-Type: image/gif; name=articleContent-bg.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/articleContent-bg.gif
Content-Transfer-Encoding: Base64
R0lGODlhpAABAIAAANHm9v///yH5BAAAAAAALAAAAACkAAEAAAINhI+py+0Po5y0
roBDAQA7
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=articleNav.gif
Content-Type: image/gif; name=articleNav.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/articleNav.gif
Content-Transfer-Encoding: Base64
R0lGODlh4wBXAPcAAPb6/f///9Dl9hdQCApUpLTT6HKs1ABrAICn0Pv9/vH1+fX5
/f7//7XT6HSt1ANtA8zh8Oz0+vD1+vD0+PX6/fT5/cLb7fX5/PD2+vP4+sHb7DSJ
Nu30+TGIM4693Yy83O/1+tDk1uLu97bU6d7s9t3r9b3Y65TBmMbd7qjNrZ/IpODt
9vD3+8Hb7eHt9sfe7+Lu6Ov0+tvq9UOSRJbB312hX1qfXKTJ483h8OPv96LI4/D1
+bHSth18Htzr9Yi525nEnsjfzcng74W32rnW6imDKuvz+X+1g7/Z7JbCm+30+glw
CYK12cXd7rnXvuXw+Mvh0OXw6+71+kCQQVGaU3Wu1QxyDNbn83iw1nev1Rp6G4u8
j6XLqubx+LXU6cDa7CN/JPH3+9Tm8sTd7rvX6urz+dfo8/L3/N/s9sPc7Yu73Nzr
4i6GMLzX6+/2+9Ll8rPT6J3G4u71+9np9HyzgNXm83qyfYW4iZTA38vg7+Tv99np
3/D39+jy+QZuBrfV6bPTufP4/E6YUNHk8fT5/IC02Ony+ejy7rXT6cnf79Xn85zF
4c3i09Pm2QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAADjAFcAAAj/AAMIHEiwoMGDCBMqXMiw
ocOHECNKnEixIgMFAjJq3Mixo8ePIEOKHEmypMmTKFOqXMlRAQOEGEFcAECzps2b
OHPq3Mmzp8+fQIMKCBC0qNGjSG1eACFAAUIBEpJKnUq1qs+hVrNq/Slh6EEBC7aK
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
pwJ84BkXcQdRXHinT/3qP9dy2s2+9rdPuoAAADs=
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=articleNav-ASAP.gif
Content-Type: image/gif; name=articleNav-ASAP.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/articleNav-ASAP.gif
Content-Transfer-Encoding: Base64
R0lGODlh4wBXAPcAAPb6/f///9Dl9hdQCLTT6HKs1ABrAApUpICn0Pv9/vH1+fX5
/f7//7XT6HSt1ANtA8zh8Oz0+vD1+vD0+PX6/fT5/cLb7fX5/PD2+vP4+sHb7DSJ
Nu30+TGIM4693Yy83O/1+tDk1uLu97bU6d7s9t3r9b3Y65TBmMbd7qjNrZ/IpODt
9vD3+8Hb7eHt9sfe7+Lu6Ov0+tvq9UOSRJbB312hX1qfXKTJ483h8OPv96LI4/D1
+bHSth18HgxyDPD39+jy7i6GMMng7+Tv97nW6pnEnn+1g7zX67/Z7O/2++30+glw
CYK12cXd7gZuBuXw+Mvh0OXw6+71+kCQQVGaU3Wu1Z3G4rXT6Xev1Xiw1tHk8Xyz
gHqyfcDa7Mnf74W4iYi52yN/JNTm8sTd7rvX6urz+dfo8/L3/N/s9oW32vH3+7fV
6evz+bnXvimDKujy+bPTuaXLqu71+9bn84u8j06YUM3i07XU6dXn89np38vg78jf
zcPc7fT5/Ony+ZTA39np9Nzr9Rp6G9Xm84u73Nzr4pbCm5zF4ebx+PP4/IC02NLl
8rPT6NPm2QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAADjAFcAAAj/AAMIHEiwoMGDCBMqXMiw
ocOHECNKnEixIgMFAjJq3Mixo8ePIEOKHEmypMmTKFOqXMlRAQOEGEFcAECzps2b
OHPq3Mmzp8+fQIMKCBC0qNGjSG1eACFAAUIBEpJKnUq1qs+hVrNq/Slh6EEBC7aK
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
ejsI34zL+ta7nraI+63sZ097ywUEADs=
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=gradient1.gif
Content-Type: image/gif; name=gradient1.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/gradient1.gif
Content-Transfer-Encoding: Base64
R0lGODlhAQB3AMQAAO/3/Pv9//r8/v3+//f7/vj7/vb7/vv8/vn7/vz9//z+//L4
/fD3/PH3/PT5/fX6/fn8/vL3/PP5/fb6/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAABAHcAAAU0ICCOZAkwaNNESys5zvNM
Rm3XRK7rRe/3iKAQAYEIjkjkYck8BJ7QqDRBrSYU2KxiwO12QwA7
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=rss.png
Content-Type: image/png; name=rss.png
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/rss.png
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAABGdBTUEAAK/INwWK
6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJDSURBVHja
jJJNSBRhGMd/887MzrQxRSLbFuYhoUhEKsMo8paHUKFLdBDrUIdunvq4RdClOq8H
b0FBSAVCUhFR1CGD/MrIJYqs1kLUXd382N356plZFOrUO/MMz/vO83+e93n+f+1z
F+kQBoOQNLBJg0CTj7z/rvWjGbEOIwKp9O7WkhtQc/wMWrlIkP8Kc1lMS8eyFHpk
po5SgWCCVO7Z5JARhuz1Qg29fh87u6/9VWL1/SPc4Qy6n8c0FehiXin6dcCQaylD
MhqGz8ydS2hKkmxNkWxowWnuBLHK6G2C8X6UJkBlxUmNqLYyNbzF74QLDrgFgh9L
LE0NsPKxjW1Hz2EdPIubsOFdH2HgbwAlC4S19dT13o+3pS+vcSfvUcq9YnbwA6mu
W9hNpym/FWBxfh0CZkKGkPBZeJFhcWQAu6EN52QGZ/8prEKW+cdXq0039UiLXhUY
zdjebOJQQI30UXp6mZn+Dtam32Afu0iyrgUvN0r+ZQbr8HncSpUVJfwRhBWC0hyG
V8CxXBL5SWYf9sYBidYLIG2V87/ifVjTWAX6AlxeK2C0X8e58hOr/Qa2XJ3iLMWx
B1h72tHs7bgryzHAN2o2gJorTrLxRHVazd0o4TXiyV2Yjs90uzauGvvppmqcLjwm
bZ3V7BO2HOrBnbgrQRqWUgTZ5+Snx4WeKfzCCrmb3axODKNH+vvUyWjqyK4DiKQ0
eXSpFsgVvLJQWpH+xSpr4otg/HI0TR/t97cxTUS+QxIMRTLi/9ZYJPI/AgwAoc3W
7ZrqR2IAAAAASUVORK5CYII=
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=pubsNav.gif
Content-Type: image/gif; name=pubsNav.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/pubsNav.gif
Content-Transfer-Encoding: Base64
R0lGODlh6AM8APcAAOnt9Bw/lKKw00llqVt0sYeZxh0/lEhkqEZipkNfox8/lCI/
lEFdoTpWmj5anixIlClFlDNPlDBMlCZClDdTl////wAAAImbx8DK4Xx+gquus8rN
0x8gIT4/QYyOkl1fYhAQEC8vMWB7s7q+w9nd5G1vck5PUfHz+OTo8eLm8Zueo4ea
xpGgxuPn8WJ3sY2cxmR5sU5mosjP4qm11EZeopKhxmyBs4WVv8fO4khgomd8sUxk
oml+sdTZ6o6dxpSjyMrR4/Hy+ENbosnQ4n+Pv/L0+FxyqWB4tIuaxlJqpXCHvJKj
y+fr86Gw0mB0sdbd6x5BldLa6ShJmrvG36Oy032Ov8bN4qiz1GN9tD5do6SmqzhY
pK251GF7s2F8s2J8tNfd6tbc6piny6KvzoOUv0Fbm6y31F91rK+61au21G+DtYCR
v7rD24eYwTdRmzRPm8XN4nWIuJqpzbjB2+Xo8lFoqaWorVRqqXGGuNXa6kRenpal
yVhwq9Ta6pqnzbfA2/L0+ZuozTpUm/X3+jRTn3KFuGV7sXSIullwqae11tbb6neK
uGR4tJ2qzZ6rzeXp8j5Ym1Rtp7nC2+bp8rzG3KOw0FZtqY2ex4ucxWyAs1pzrsrS
5MzT5W6BuNjd6xQUFbvE26Wy1E5op3CDuNnf7MzU5omawsDJ4RITEyYnKHqMuk1o
q8LL4sHK4UlKTb7I4Km21qy42PDy+O/x96a01VlysKCtzUdhodje7GZ+t7/I32N7
tYOWxEpjokFan0xmpMPM4pmoz7K92FhxsD5Yn0JfplBpp/Dy97C71zZTn0Ren0tl
pEdgn4udyIqcyH2Rwqeqr5qpz0pmqaaz05WlzamssVRtq3OGtiJElzlTn1VvrjpY
omR8tlJsqlZwrjxVn3eLvJ+t0ml9s9zg7bO+2aey1GV5szc4OYCTwHuPvtHX58XO
4+/y93qNvWJ3s93i7dvg7XmNvnSJuaWy0u3w9sTM4md9tO7w9niLu3yOvMLL4Wd7
s9zh7cPP38TN4n2RwSH5BAAAAAAALAAAAADoAzwAAAj/ACsMYhVLgMGDCBMqXMiw
ocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMA2GejWowglY
MXPq3Mmzp8+fQIMKHUq0qNGjSJOWTCSr1UFeuwhInUq1qtWrWLNq3cq1q9evYMOK
HUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3as3V7ODpxIZfDagsOHDiBMrXsy4
sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXA6Q5M0jroDbY
uHPr3s27t+/fwIMLH068uPHjyEFzU5i8ufPn0KNLn069uvXr2LNfrsVcu/fv4MOL
/x9Pvrz58+gLc094oL379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjg
ggw26OCDEEYo4YQUVmjhhe4NoxACHHbo4YcgIhDPOrP8E+KJKKao4oostujiizDG
KOOMNNZo44045qjjjjz26OOPQAYp5JBEFmnkkUgmqWSS3iiUwJNQRinllOD4U0EF
s6Qz5ZZcdunll2CGKeaYZJZp5plopqnmmmy26eabcMYp55x01mnnnXjmqeeefPbp
5593WqMQA4QWauihh4IDzJVXztIOopAaukWklMpRAaWYZlqoHJNoKgopkZbCaAXk
aFropKYycAijpNiTKgOTyP/xKqWovkqKKKlecumsmIpagayIrnolIJekKgqxvCZr
aq2arqqJoZwyoKuym3ZKbarMmnortFdOcoi0gFw5DaKAbArsrJpU8O212Ca7LQPp
rstuoaWUUmis1GY7L6HojEtotPsum6qzhOr6bLAVHBzwwgw37PDDEEcccTcKOWDx
xRhnjLE8+ox65TH4aCzyxViMbLIYFZis8soXi/EIyygbojImFcjMssUl3+wAHhXw
4QAunOjswCNiCG1yzjobUkHRJnPCNM1GqywGIHwYErTGPOPhgDAVLHPzMoBgEvXY
NyPNMs8+t/wy1GRb7HLbQpvNstJMOzAPIFpjUvQjuIz/rLTNuggzNh8VaA23znLP
vbTFhBtuNB+4OH4xJ1cPXXfUiR9usS6AqK2zGJWTnbnIaFtMc9oZl6756qy37vrr
sMcu+9jGKNTA7bjnrjvucajjMaPHxLH78Ld/Qfzxe1Rw/PLM474HHc17Qkcly9Ox
SfO5G499A2pUEEkDz2/fAB17iH+89ttXQocny1dQfgOmKG/+8chcDz4yu3evBvcV
7D///wA8n/i6973dxS+ACPwf+rCnPvY14Bbu050nqDc8UxSBercoggPNF4n+JXB7
C2Tg+m7XQf+ZT3+724T9xvc+BX5wdxCkQz5uFz7sqTCBITweAW8XvwLqbocvDKIQ
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
2932vndK8q1vfvdb4PLW9/++B57nf9f74L9OOMAXfuaGK/zhfIk4vI1d8YJnXOMb
53jHPf5xkIdc5CMneclNfvKTE+KSAWB5y5ew6CW0XOYvn7iiYy5zltP84DfHuc5r
/vM183zmQA86znNOdEgLvedIH4vSh850lDjd5caWutGtfnWsZ13rW+d6173+dbCH
XexjJzvZVW48o0thCoSeghSsrnao37ntb1/7wOee9rrHXe8quTvO4b53vvRd5n8H
vJ0F7/e86/3wg0880RffcsLn+vFlp3zlLX95zGde85tv+dmnZXUoKIEKGCB96U1/
etSjvh9UUAIUsB760ade9rOnfe1tf3vbs971V4c97n3///vS6/71ogd+8Y1/fOQn
//bC5z3xlf/85zMf9M6HfvWtP/vWa7331+f+6aXf/Nh33/rfn374xW968nNe/etn
f/vd/36Wex442IB//e1/f/znX//753///f9/AAxAARxAAixAAzxA/NsG4EiE31gF
BHxACIxACZxACqxAC7xADMxADdxADgS7I/gNWmiF3wiGYuhAEzxBFExBFVxBFmxB
F3xBGPS/VQiH3ziFE4AF4KCGAthBHuxBH/xBIAxCIRxCIixCIzxCJExCJVxCJmxC
J3xCKIxCKZxCKqxCK7xCLMxCLdxCLuxCL/xCMAxDMRxDMhzDaFhAWaiAQWCFWLgk
Qjd8QziMQzmcQzqsQzu8QzzMQz3cQz7sQz/8Q0AMREEcREIsREM8RERMREVcREZs
REd8REiMREmcRDwMhVcYhAoICAA7
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=journalNav.gif
Content-Type: image/gif; name=journalNav.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/journalNav.gif
Content-Transfer-Encoding: Base64
R0lGODlh6AM8APcAAHGGuSxIlEFbm3x+gjdTl7nC27q+w7K92E1lonWIucDK4ThY
pJqozdfd6lJqpaGuzpiny8TGzZSVmJueoxAQECZClOLm7YyOktje7Ehgor3BymR5
seXo8tLa6YuaxoSEhm1vcnFxcqSmq2B4tPL0+JalyWtqa8rN07W7yNTa6t3h7I2c
xqWorVhwqqKrwbfB22B7s2Z9tW2CuYudyGRkZHuKszRPm+7w9pKhxp6rzdHU2qe1
1penzWN8tGyBs05prOnt9Gh7q2l+sXOGts7R1nmNvn6Swl1cXOfr85ulvlVtqbzG
3ENbosXN4rm+yjdRmzRTnxw/lD9epMDJ4aGipqKw083P0sfKz0llqVlysI2Zuktj
opOfvFhtpXGCr7Gzt9vf5Xt7fMrM0bO5x6mwxDpUm4COtVt0sYmZxipGlIeZxjJN
l0hkqB0/lB8/lEZipkNfoyI/lDpWmkFdoT5anitGl////4mbxwAAADNPlClFlDBM
lB8gIT4/Qauus11fYi8vMdnd5OTo8fHz+OLm8U5PUePn8Y6dxpSjyJGgxn+Pv9TZ
6oWVv8fO4tHS06y31FhXV6251Gd8sUZeocrR42J3sYCRv4OUv2B0sVxyqcbN4sjP
4snQ4oeYwaiz1H2Ov6m11K+61VRqqYeaxqu21PHy+KGw0j5Ym8zT5dbb6szU5m+D
tmF8s2R4tOXp8vX3+lFoqVpzrl91rLvG3x5Blejs88rS5ChJmpKjy4ucxaOy08LL
4r7I4ElKTaWy1Ky42EtlpEdhobvE23qMuomawiYnKI2eyPDy+Km21pCfx5Ojx4+e
x05op3yOvaOw0IaZxjJRnr/I30pmqUdfn+/x95+t0jlTnztUnVVvroOWxExmpH6R
vlZwriJElzxVn62vs6mssVJsqj5Ynzc4ObG3x6az04WStmBfYIiVtouXuWJ3s0Rb
n+bp8DxWmm6AroeUuHeKudHX58vO1MLL4eHl8cPM4uLl8dXY3qiqr8XO43mIsqqs
sNjb4tnd4ypFlydEliH5BAAAAAAALAAAAADoAzwAAAj/AO282vWrisGDCBMqXMiw
ocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMA364vXKziBk
MXPq3Mmzp8+fQIMKHUq0qNGjSJOW3HFMwcFsPc5InUq1qtWrWLNq3cq1q9evYMOK
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
nuAKvuAM3uAO/uDP/QPVYBBTcBMHUQJqkOEavuEc3uEe/uEgHuIiPuIkXuImfuIo
nuIqvuIs3uIu/uIwHuMyPuM0XuM2fuM4nuM6vuM83uM+/uNAHuRCHuQMMN/HIBAE
oRRKvuRM3uRO/uRQHuVSPuVUXuVWfhEzURNIXhBX3uVe/uVgHuZiPuZkXuZmfuZV
kOU2gRNo3uZu/uZwHudyPud0XudHwRQEXgVQwRd83ud+/ueAHuiCPuiEXuiGfuiI
/57oir7ojL4XfgEYtUEY6THplF7pln7pmJ7pmr7pwSEbAn4Qt6EYIzAKd1Dqpn7q
qJ7qqD4KI8AYI6DqsB7rsj7rtF7rtn7ruJ7rd9DqiTHquv7rwB7stl4EP+AYvi7s
yJ7suk7soq7szv7ssM7rhfHq0F7t1r7rh0Ht177t3N7tsS7tiHHs3j7utM7svU7u
wQ7unL4cCbEYpgAE8B7v8j7v9F7v8G4KivHu9r7v/N7v/v7vAB/wAj/w+47vh6Hv
BJ/wCr/wAR8PMcAYCM/wEj/xCe/wiBHxFJ/xGk/vBo/xG//xH9/xID/yJF/yA2/w
B2/yKl/xD5/yKy/xKM/pGv9yEIoxCiQ/Cohh8y+/8zzP8DhfGDrf80IP8B1Q7IkR
9EOf9PNe9IaB9Eo/9KPg9E+f9FE/9VZ/9fL+80CP9ULP9FvP9f2u9Zs+8wYhHx1A
8h0AH2cP9mxf8mnfHmvf9klvBGYv9z1P93Bv9yrfAXGv9ybP934f+CD/9nkv+COP
92zQ94FP+BjS+PJB9lUQIkgA8ODQCxQgAgCPBB8y+Ybf+QGv+RzC+Z5v8jwQIqNP
8qUf+qef8Ugg+qtP8a3/+rLv76DPIbM/8an/Bq4f+LW/JL6PIk2SEFtC+b2AB3hw
+QAvJbe//FCy/B/PA1ASJ86P+80//dZ//djP81GS/QL/D/1PcvqNEv5o8igJ0Sn/
jg/Fb/zHj/n+Tin77gfqDwgGkPR8MAAEPwB4UPIDwAcTDxBzBAIhWNAgwQF4Di5k
aDAhHjyFTjTkM+AgngsI+Sy8oLAhQz5/PgLhIXBOD5MjCQYqBBHQRJUxZRYcsHHm
zYMlB34cYJGgTYZ9RC6siZMjnolCjS4FcgKQSwMN/SAlqNSonz40PTLl2tDAUzyA
Gv7JetPqx0AUMi59WHYhRIggzA7titPknI9fXY51y/TsyKkw6xrUiVcloEAET+Dx
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
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=script.js
Content-Type: application/x-javascript; charset=UTF-8; name=script.js
Content-Location: http://pubs.acs.org/templates/jsp/script.js
Content-Transfer-Encoding: Base64
LyogZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCBmcm9tIGRvY3VtZW50Lm9u
bG9hZCBldmVudAogKiBtYWluIGV2ZW50IGhhbmRsaW5nLCBmb3IgYWxsIHBhZ2Vz
ICovCmZ1bmN0aW9uIHByZWxvYWQoKSB7Cglsb2FkKCk7Cn0KZnVuY3Rpb24gcHJl
dW5sb2FkKCkgewoJdW5sb2FkKCk7Cn0KCi8qIGZ1bmN0aW9uIHRoYXQgd2lsbCBi
ZSBjYWxsZWQgZnJvbSBkb2N1bWVudC5vbmxvYWQgZXZlbnQKICogb3ZlcnJpZGUg
dGhpcyBmdW5jdGlvbiB0byBkbyBpbmRpdmlkdWFsIG9ubG9hZCBldmVudCAqLwpm
dW5jdGlvbiBsb2FkKCkKewp9CmZ1bmN0aW9uIHVubG9hZCgpCnsKfQoKLyoqCiAq
IENoYW5nZSB0aGUgZm9yZWNvbG9yIG9mIHRoZSBlbGVtZW50IHdpdGggaWQgZWlk
CiAqIHRvIHRoZSBjb2xvciBzcGVjaWZpZWQgYnkgY29sb3IKICovCmZ1bmN0aW9u
IGNoYW5nZUZvcmVncm91bmRDb2xvcihlaWQsIGNvbG9yKSB7CiAgICBpZihkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCAmJiAoZWxlbT1kb2N1bWVudC5nZXRFbGVtZW50
QnlJZChlaWQpKSkKICAgICAgICBlbGVtLnN0eWxlLmNvbG9yPWNvbG9yOwp9Cgov
KioKICogU2hvcnRoYW5kIGZvciBpZCdpbmcgZWxlbWVudHMKICovCmlmICh0eXBl
b2YgJCA9PSAidW5kZWZpbmVkIikgJCA9IGZ1bmN0aW9uKGlkKSB7IHJldHVybiBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7IH0gICAvLyBkbyBub3Qgb3ZlcnJp
ZGUgaWYgYWxyZWFkeSBkZWZpbmVkIGJ5IHByb3RvdHlwZQoKLyoqCWNjYyByaWdo
dHMgbGluayAqLwpmdW5jdGlvbiBSaWdodHNsaW5rUG9wVXAoYVB1Ymxpc2hlciwg
YVB1YmxpY2F0aW9uLCBhVGl0bGUsIGFEYXRlLCBhQXV0aG9yLCBhQ29udGVudElk
LCBhQ29weXJpZ2h0LCBhVm9sdW1lLCBhSXNzdWUsIGFTdGFydFBhZ2UsIGFFbmRQ
YWdlLCBhSXNzbiwgYU9yZGVyQmVhblJlc2V0LCBhQ29sb3IpCnsKCXZhciBsb2Nh
dGlvbiA9CgkJIj9wdWJsaXNoZXJOYW1lPSIgKyBhUHVibGlzaGVyCgkJKyAiJnB1
YmxpY2F0aW9uPSIgKyBhUHVibGljYXRpb24KCQkrICImdGl0bGU9IiArIGFUaXRs
ZQoJCSsgIiZwdWJsaWNhdGlvbkRhdGU9IiArIGFEYXRlCgkJKyAiJmF1dGhvcj0i
ICsgYUF1dGhvcgoJCSsgIiZjb250ZW50SUQ9IiArIGFDb250ZW50SWQKCQkrICIm
Y29weXJpZ2h0PSIgKyBhQ29weXJpZ2h0CgkJKyAiJnN0YXJ0UGFnZT0iICsgYVN0
YXJ0UGFnZQoJCSsgIiZlbmRQYWdlPSIgKyBhRW5kUGFnZTsKCWlmIChhVm9sdW1l
ICE9IG51bGwpIHsKCQlsb2NhdGlvbiArPSAiJnZvbHVtZU51bT0iICsgYVZvbHVt
ZTsKCX0KCWlmIChhSXNzdWUgIT0gbnVsbCkgewoJCWxvY2F0aW9uICs9ICImaXNz
dWVOdW09IiArIGFJc3N1ZTsKCX0KCWlmIChhSXNzbiAhPSBudWxsKSB7CgkJbG9j
YXRpb24gKz0gIiZpc3NuPSIgKyBhSXNzbjsKCX0KCWlmIChhT3JkZXJCZWFuUmVz
ZXQgIT0gbnVsbCkgewoJCWxvY2F0aW9uICs9ICImb3JkZXJCZWFuUmVzZXQ9IiAr
IGFPcmRlckJlYW5SZXNldDsKCX0KICAgIGlmIChhQ29sb3IgIT0gbnVsbCl7CiAg
ICAgICAgbG9jYXRpb24gKz0gIiZjb2xvcj0iICsgYUNvbG9yOwogICAgfQoKCXZh
ciBsaW5rID0gIi9zZXJ2bGV0L2xpbmtvdXQ/dHlwZT1yaWdodHNsaW5rJnVybD0i
ICsgZXNjYXBlKGxvY2F0aW9uKTsKCXZhciB3aW5wcm9wcyA9ICJsb2NhdGlvbj1u
byx0b29sYmFyPW5vLGRpcmVjdG9yaWVzPW5vLHN0YXR1cz1ubyxtZW51YmFyPW5v
LHNjcm9sbGJhcnM9eWVzLHJlc2l6YWJsZT15ZXMsd2lkdGg9NjUwLGhlaWdodD01
NTAiOwoJUG9wVXAgPSB3aW5kb3cub3BlbihsaW5rLCAnUmlnaHRzbGluaycsIHdp
bnByb3BzKTsKfQoKCi8qIEZ1bmN0aW9uIHRvIGxvYWQgaW1hZ2VzLgogKglub3Rl
OiBtYWtlIHRoaXMgZW1wdHkgbWV0aG9kIHNvIHRoYXQKICogMSkgbWluaW5pemUg
Y29kZSBjaGFuZ2VzOyAyKSBmb3IgZnV0dXJlIGludGVncmF0aW9uOyAzKSBlYXNp
ZXIgdG8gdGFrZSB0aGUgZmVhdHVyZSBiYWNrCiAqLwpmdW5jdGlvbiBNTV9wcmVs
b2FkSW1hZ2VzKCkgewp9CgpmdW5jdGlvbiBNTV9zd2FwSW1nUmVzdG9yZSgpIHsK
fQoKZnVuY3Rpb24gTU1fZmluZE9iaihuLCBkKSB7Cn0KCmZ1bmN0aW9uIE1NX3N3
YXBJbWFnZSgpIHsKfQoKZnVuY3Rpb24gbWVudU1vdXNlT3Zlcih0eXBlLCBhY3R1
YWxUeXBlKSB7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnTWVudUl0ZW1f
Jyt0eXBlKS5jbGFzc05hbWU9J01lbnVJdGVtT3Zlcl8nKyh0eXBlID09IGFjdHVh
bFR5cGUpOwp9CmZ1bmN0aW9uIG1lbnVNb3VzZU91dCh0eXBlLCBhY3R1YWxUeXBl
KSB7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnTWVudUl0ZW1fJyt0eXBl
KS5jbGFzc05hbWU9J01lbnVJdGVtXycrKHR5cGUgPT0gYWN0dWFsVHlwZSk7Cn0K
ZnVuY3Rpb24gbWVudUNsaWNrKHR5cGUpIHsKICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdNZW51TGlua18nK3R5cGUpLmNsaWNrKCk7Cn0KCi8vIGJyb3dzZXIg
ZGV0ZWN0aW9uCmZ1bmN0aW9uIGJyb3dzZXJDaGVjaygpIHsKICAgIHRoaXMubnM0
ID0gKGRvY3VtZW50LmxheWVycyk/IHRydWU6ZmFsc2U7CiAgICB0aGlzLmllID0g
KGRvY3VtZW50LmFsbCYmKCF3aW5kb3cub3BlcmEpKT8gdHJ1ZTpmYWxzZTsKICAg
IHRoaXMuZG9tID0gKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKT8gdHJ1ZTpmYWxz
ZTsKICAgIHRoaXMubnM2ID0gKHdpbmRvdy5zaWRlYmFyKT8gdHJ1ZTpmYWxzZTsK
ICAgIHRoaXMubW96ID0gKHdpbmRvdy5zaWRlYmFyfHxuYXZpZ2F0b3IudXNlckFn
ZW50LmluZGV4T2YoJ0dlY2tvJykhPS0xKT8gdHJ1ZTpmYWxzZTsKICAgIHRoaXMu
b3BlcmEgPSAod2luZG93Lm9wZXJhKT8gdHJ1ZTpmYWxzZTsKICAgIHRoaXMubWFj
ID0gKG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignTWFjJykhPS0xKT8gdHJ1
ZTpmYWxzZTsKfQpicm93c2VyID0gbmV3IGJyb3dzZXJDaGVjaygpOwp2YXIgT2Jq
OwoKLy8gbXVsdGlicm93c2VyIGdldCBvYmplY3QgYnkgaWQsIGluIE5ONCB5b3Ug
Y2Fubm90IGFjY2VzcyBhbGwgb2JqZWN0ICh0ZXN0IGl0IGZpcnN0KQpmdW5jdGlv
biBnZXRPYmplY3RCeU5hbWUobmFtZU9mT2JqZWN0KXsKCU9iaiA9IG51bGw7Cglp
ZiAoYnJvd3Nlci5pZSkgT2JqID0gZG9jdW1lbnQuYWxsW25hbWVPZk9iamVjdF0K
CWVsc2UgaWYgKGJyb3dzZXIuZG9tKSBPYmogPSBmaW5kRE9NT2JqZWN0KG5hbWVP
Zk9iamVjdCkKCWVsc2UgaWYgKGJyb3dzZXIubnM0KSBmaW5kTGF5ZXIod2luZG93
LG5hbWVPZk9iamVjdCk7CglyZXR1cm4gKCFPYmogfHwgKCBicm93c2VyLm5zNCAm
JiBPYmogPT0gd2luZG93ICkgKSA/ICJPYmplY3Qgbm90IGZvdW5kIiA6IE9iajsK
fQovLyBoZWxwZXIgZnVuY3Rpb24KZnVuY3Rpb24gZmluZERPTU9iamVjdChuYW1l
T2ZPYmplY3QpIHsKCWZvciAodmFyIGkgPSAwOyBpIDwgZG9jdW1lbnQuaW1hZ2Vz
Lmxlbmd0aDsgaSsrKSB7CgkJaWYgKGRvY3VtZW50LmltYWdlc1tpXS5uYW1lPT1u
YW1lT2ZPYmplY3QpIHJldHVybiBkb2N1bWVudC5pbWFnZXNbaV0KCX0KCXJldHVy
biBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChuYW1lT2ZPYmplY3QpCn0KLy8gaGVs
cGVyIGZ1bmN0aW9uCmZ1bmN0aW9uIGZpbmRMYXllcihub2RlLG5hbWVPZk9iamVj
dCkgewoJaWYgKCBub2RlLm5hbWUgPT0gbmFtZU9mT2JqZWN0ICkgT2JqID0gbm9k
ZTsKCWZvciAoIHZhciBjb3VudGVyID0gMDsgY291bnRlciA8IG5vZGUuZG9jdW1l
bnQuaW1hZ2VzLmxlbmd0aDsgY291bnRlcisrICkgewoJCWlmIChub2RlLmRvY3Vt
ZW50LmltYWdlc1tjb3VudGVyXS5uYW1lPT1uYW1lT2ZPYmplY3QpIE9iaiA9IG5v
ZGUuZG9jdW1lbnQuaW1hZ2VzW2NvdW50ZXJdOwoJfQoJZm9yICggdmFyIGkgPSAw
OyBpIDwgbm9kZS5kb2N1bWVudC5sYXllcnMubGVuZ3RoOyBpKysgKSB7CgkJZmlu
ZExheWVyKG5vZGUuZG9jdW1lbnQubGF5ZXJzW2ldLG5hbWVPZk9iamVjdCk7Cgl9
Cn0KCmZ1bmN0aW9uIHRvZ2dsZVZpc2liaWxpdHkoaWQpIHsKICAgIG9iaiA9IGdl
dE9iamVjdEJ5TmFtZShpZCk7CiAgICBpZiAob2JqKSB7CiAgICAgICAgIHYgPSBv
Ymouc3R5bGUuZGlzcGxheTsKICAgICAgICAgb2JqLnN0eWxlLmRpc3BsYXkgPSAo
diA9PSAnbm9uZScpID8gJ2Jsb2NrJyA6ICdub25lJzsKICAgICAgICAgaSA9IGdl
dE9iamVjdEJ5TmFtZSgnaGlkZGVuSW1hZ2UnKTsKICAgICAgICAgaWYoaSkgaS5z
cmMgPSAnL3BhZ2UvaW1hZ2VIYWNrLmpzcD9vYmplY3Q9JyArIGlkICsgJyZkaXNw
bGF5PScgKyBvYmouc3R5bGUuZGlzcGxheSArICcmZHVtbXk9JyArIChuZXcgRGF0
ZSgpKS5nZXRUaW1lKCk7CiAgICB9Cn0KCi8qKiBDU1MgY2xhc3Mgc3VwcG9ydCAq
LwovKiogcmV0dXJuIHRydWUgaWYgcmVtb3ZlZCwgZmFsc2UgaWYgbm90IGZvdW5k
ICovCmZ1bmN0aW9uIHJlbW92ZUNsYXNzKGVsLCBjbGFzc05hbWUpIHsKCWlmICgh
KGVsICYmIGVsLmNsYXNzTmFtZSkpIHJldHVybiBmYWxzZTsKCXZhciBjbHMgPSBl
bC5jbGFzc05hbWUuc3BsaXQoIiAiKTsKCXZhciBhciA9IG5ldyBBcnJheSgpOwoJ
Zm9yICh2YXIgaSA9IGNscy5sZW5ndGg7IGkgPiAwOykgaWYgKGNsc1stLWldICE9
IGNsYXNzTmFtZSkgYXJbYXIubGVuZ3RoXSA9IGNsc1tpXTsKCWVsLmNsYXNzTmFt
ZSA9IGFyLmpvaW4oIiAiKTsKICAgIHJldHVybiBjbHMubGVuZ3RoICE9IGFyLmxl
bmd0aDsKfQovKiogcmV0dXJuIHRydWUgaWYgZWxlbWVudCBoYXMgdGhhdCBjbGFz
cyAqLwpmdW5jdGlvbiBoYXNDbGFzcyhlbCwgY2xhc3NOYW1lKSB7CglpZiAoIShl
bCAmJiBlbC5jbGFzc05hbWUpKSByZXR1cm4gZmFsc2U7Cgl2YXIgY2xzID0gZWwu
Y2xhc3NOYW1lLnNwbGl0KCIgIik7Cglmb3IgKHZhciBpID0gY2xzLmxlbmd0aDsg
aSA+IDA7KSBpZiAoY2xzWy0taV0gPT0gY2xhc3NOYW1lKSByZXR1cm4gdHJ1ZTsK
CXJldHVybiBmYWxzZTsKfQovKiogYWRkIGNsYXNzIHRvIGVsZW1lbnQsIGlmIGVs
ZW1lbnQgYWxyZWFkeSBoYWQgdGhhdCBjbGFzcyAtIGRvZXMgbm90aGluayAqLwpm
dW5jdGlvbiBhZGRDbGFzcyhlbCwgY2xhc3NOYW1lKSB7CiAgICBpZiAoIWVsIHx8
IGhhc0NsYXNzKGVsLCBjbGFzc05hbWUpKSByZXR1cm47CiAgICBpZiAoZWwuY2xh
c3NOYW1lKSBlbC5jbGFzc05hbWUgKz0gIiAiICsgY2xhc3NOYW1lOwogICAgZWxz
ZSBlbC5jbGFzc05hbWUgPSBjbGFzc05hbWU7Cn0KLyoqIEFkZCBDU1MgcnVsZSBh
cyBsYXN0IHJ1bGUgaW4gbGFzdCBzdHlsZXNoZWV0IC0gb3ZlcnJpZGUgYWxsIHBy
ZXZpb3VzIGRlZmluaXRpb25zCiAgICByZW1vdmluZyBpcyBoYXJkZXIgLSBub3Qg
aW1wbGVtZW50ZWQsIHVzZSBpdCB3aXRoIGNhdXRpb24gKi8KZnVuY3Rpb24gYWRk
Q3NzUnVsZShzZWxlY3RvciwgcnVsZSkgewogICAgaWYgKGRvY3VtZW50LnN0eWxl
U2hlZXRzKSB7CiAgICAgICAgdmFyIGNzcyA9IGRvY3VtZW50LnN0eWxlU2hlZXRz
W2RvY3VtZW50LnN0eWxlU2hlZXRzLmxlbmd0aC0xXTsgLy8gZ2V0IGxhc3QgY3Nz
CiAgICAgICAgaWYgKGNzcy5hZGRSdWxlKSBjc3MuYWRkUnVsZShzZWxlY3Rvciwg
cnVsZSk7ICAgICAgICAgLy8gSUUKICAgICAgICBlbHNlIGlmIChjc3MuaW5zZXJ0
UnVsZSkgY3NzLmluc2VydFJ1bGUoc2VsZWN0b3IgKyAieyIgKyBydWxlICsgIn0i
LCBjc3MuY3NzUnVsZXMubGVuZ3RoKTsgIC8vIFczQwogICAgfQp9Ci8qKiBnZXQg
Q1NTIHN0eWxlIG9mIHRoZSBkb2N1bWVudCAqLwpmdW5jdGlvbiBnZXRDc3NUZXh0
KCkgewogIHZhciBpbXBvcnRzID0gIiI7CiAgdmFyIGNzc1RleHQgPSAiXG4iOwog
IHZhciBzdHlsZVNoZWV0cyA9IGRvY3VtZW50LnN0eWxlU2hlZXRzOwogIGZvciAo
dmFyIGkgPSAwOyBpIDwgc3R5bGVTaGVldHMubGVuZ3RoOyBpKyspIHsKICAgIHZh
ciBjc3MgPSBzdHlsZVNoZWV0cy5pdGVtKGkpOwogICAgdmFyIG1lZGlhVGV4dCA9
IHR5cGVvZiBjc3MubWVkaWEgPT0gInN0cmluZyIgPyBjc3MubWVkaWEgOiBjc3Mu
bWVkaWEubWVkaWFUZXh0OwogICAgaWYgKCFtZWRpYVRleHQgfHwgbWVkaWFUZXh0
LmluZGV4T2YoImFsbCIpICE9IC0xIHx8IG1lZGlhVGV4dC5pbmRleE9mKCJzY3Jl
ZW4iKSAhPSAtMSkgewogICAgICBpZiAoY3NzLmltcG9ydHMpIHsKICAgICAgICAv
LyBJRSBpbXBvcnRzCiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjc3MuaW1w
b3J0cy5sZW5ndGg7IGorKykgewogICAgICAgICAgdmFyIGhyZWYgPSBjc3MuaW1w
b3J0c1tqXS5ocmVmOwogICAgICAgICAgdmFyIGxhc3RRdW90ZSA9IGhyZWYubGFz
dEluZGV4T2YoJyInKTsKICAgICAgICAgIGlmIChsYXN0UXVvdGUgIT0gLTEpIHsK
ICAgICAgICAgICAgLy8gaHJlZiBjb250YWlucyBtZWRpYSAtICJ1cmwiIG1lZGlh
CiAgICAgICAgICAgIG1lZGlhVGV4dCA9IGhyZWYuc3Vic3RyKGxhc3RRdW90ZSAr
IDEpOwogICAgICAgICAgICBpZiAobWVkaWFUZXh0LmluZGV4T2YoImFsbCIpID09
IC0xICYmIG1lZGlhVGV4dC5pbmRleE9mKCJzY3JlZW4iKSA9PSAtMSkgY29udGlu
dWU7CiAgICAgICAgICAgIGhyZWYgPSBocmVmLnN1YnN0cigxLCBsYXN0UXVvdGUg
LSAxKTsKICAgICAgICAgIH0KICAgICAgICAgIGltcG9ydHMgKz0gJ0BpbXBvcnQg
dXJsKCInICsgaHJlZiArICciKTtcbic7CiAgICAgICAgfQogICAgICB9CiAgICAg
IGlmIChjc3MucnVsZXMpIHsKICAgICAgICAvLyBJRSBydWxlcwogICAgICAgIGZv
ciAodmFyIGogPSAwOyBqIDwgY3NzLnJ1bGVzLmxlbmd0aDsgaisrKSB7CiAgICAg
ICAgICAvLyBIb3cgdG8gZmlsdGVyIG1lZGlhIHJ1bGVzID8/PwogICAgICAgICAg
Y3NzVGV4dCArPSBjc3MucnVsZXNbal0uc2VsZWN0b3JUZXh0ICsgIiB7ICIgKyBj
c3MucnVsZXNbal0uc3R5bGUuY3NzVGV4dCArICIgfVxuIjsKICAgICAgICB9CiAg
ICAgIH0gZWxzZSBpZiAoY3NzLmNzc1J1bGVzKSB7CiAgICAgICAgLy8gVzNDIGNv
bXBsaWFudCBicm93c2VyCiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjc3Mu
Y3NzUnVsZXMubGVuZ3RoOyBqKyspIHsKICAgICAgICAgIHZhciBydWxlID0gY3Nz
LmNzc1J1bGVzLml0ZW0oaik7CiAgICAgICAgICBpZiAocnVsZS50eXBlID09IHJ1
bGUuSU1QT1JUX1JVTEUgfHwgcnVsZS50eXBlID09IHJ1bGUuTUVESUFfUlVMRSkg
ewogICAgICAgICAgICBtZWRpYVRleHQgPSBydWxlLm1lZGlhLm1lZGlhVGV4dDsK
ICAgICAgICAgICAgaWYgKG1lZGlhVGV4dCAmJiBtZWRpYVRleHQuaW5kZXhPZigi
YWxsIikgPT0gLTEgJiYgbWVkaWFUZXh0LmluZGV4T2YoInNjcmVlbiIpID09IC0x
KSBjb250aW51ZTsKICAgICAgICAgICAgaWYgKHJ1bGUudHlwZSA9PSBydWxlLklN
UE9SVF9SVUxFKSBpbXBvcnRzICs9IHJ1bGUuY3NzVGV4dDsKICAgICAgICAgICAg
ZWxzZSBjc3NUZXh0ICs9IHJ1bGUuY3NzVGV4dCArICJcbiI7CiAgICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICBjc3NUZXh0ICs9IHJ1bGUuY3NzVGV4dCArICJc
biI7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfQogIHJl
dHVybiBpbXBvcnRzICsgY3NzVGV4dDsKfQoKZnVuY3Rpb24gbG9hZENzcyh1cmws
IHRpdGxlLCBtZWRpYSkgewogICAgdmFyIGVsID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnbGluaycpOwogICAgZWwudHlwZSA9ICd0ZXh0L2Nzcyc7CiAgICBlbC5y
ZWwgPSAnc3R5bGVzaGVldCc7CiAgICBlbC5ocmVmID0gdXJsOwogICAgZWwubWVk
aWEgPSBtZWRpYSB8fCAnc2NyZWVuJzsKICAgIGVsLnRpdGxlID0gdGl0bGUgfHwg
J2R5bmFtaWNMb2FkZWRTaGVldCc7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKGVsKTsKfQoKZnVuY3Rpb24g
bG9hZEpzKHVybCkgeyAgICAKICAgIHZhciBlbCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInNjcmlwdCIpOwogICAgZWwudHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQi
OwogICAgZWwuc3JjID0gdXJsOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChlbCk7Cn0KCi8qKiBET00gRXZl
bnQgc3VwcG9ydCAqLwovKiogYWRkRXZlbnRMaXN0ZW5lciBtZXRob2QgbWF5IGFs
cmVhZHkgZXhpc3QsIGl0J3Mgbm90IHRyaXZpYWwgaW1wbGVtZW50IGl0IGFuZCBu
b3QgYnJlYWsgaXQsIHVzZSBvdGhlciBtYW1lICdhZGRMaXN0ZW5lcicgaXMgc2lt
cGxlICovCmZ1bmN0aW9uIGFkZExpc3RlbmVyKGVsLCBldm5hbWUsIGZ1bmMpIHsK
ICAgIGlmIChlbC5hdHRhY2hFdmVudCkgZWwuYXR0YWNoRXZlbnQoIm9uIiArIGV2
bmFtZSwgZnVuYyk7CgllbHNlIGlmKGVsLmFkZEV2ZW50TGlzdGVuZXIpIGVsLmFk
ZEV2ZW50TGlzdGVuZXIoZXZuYW1lLCBmdW5jLCB0cnVlKTsKfQovKiogcmVtb3Zl
RXZlbnRMaXN0ZW5lciAqLwpmdW5jdGlvbiByZW1vdmVMaXN0ZW5lcihlbCwgZXZu
YW1lLCBmdW5jKSB7CglpZiAoZWwuZGV0YWNoRXZlbnQpIGVsLmRldGFjaEV2ZW50
KCJvbiIgKyBldm5hbWUsIGZ1bmMpOwoJZWxzZSBpZiAoZWwucmVtb3ZlRXZlbnRM
aXN0ZW5lcikgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihldm5hbWUsIGZ1bmMsIHRy
dWUpOwp9CgovKiogU2VydmVyIHNlc3Npb24gYWNjZXNzICovCi8qKiBoZWxwZXIg
bWV0aG9kIHRvIGFjY2VzcyBzZXNzaW9uIG9iamVjdCAqLwpmdW5jdGlvbiBfZ2V0
U2Vzc2lvbigpIHsKICAgIHJldHVybiB3aW5kb3cuc2Vzc2lvbiA/IHdpbmRvdy5z
ZXNzaW9uIDogKHdpbmRvdy5zZXNzaW9uID0gbmV3IEFycmF5KCkpOwp9Ci8qKiBz
ZW5kIHJlcXVlc3QgdG8gc2VydmVyIHRvIHByZXNlcnZlIHNvbWUgdmFsdWUgYmV0
d2VlbiBkaWZmZXJlbnQgcmVxdWVzdHMsIHZhbHVlIGlzIGFjY2Vzc2libGUgdXNp
bmcgZ2V0U2Vzc2lvbkF0dHJpYnV0ZSAqLwpmdW5jdGlvbiBzZXRTZXNzaW9uQXR0
cmlidXRlKG5hbWUsIHZhbHVlKSB7CiAgICAvKiBqdXN0IHRvIHRlc3QgY2FsbGJh
Y2sgKi8KICAgIGZ1bmN0aW9uIHRlc3QoZG9jKSB7Ci8vICAgICAgICBhbGVydCgi
U2VydmVyIHJldHVybmVkOiAiICsgZG9jLmJvZHkuaW5uZXJIVE1MKTsKICAgIH0K
ICAgIHNlbmRTZXJ2ZXJNc2coIi9hY3Rpb24vc2Vzc2lvbkFjY2Vzcz9hY3Rpb249
c2V0SmF2YVNjcmlwdEF0dHJpYnV0ZSZuYW1lPSIgKyBuYW1lICsgIiZ2YWx1ZT0i
ICsgdmFsdWUsIHRlc3QpOwogICAgX2dldFNlc3Npb24oKVtuYW1lXSA9IHZhbHVl
Owp9Ci8qKiBzZWUgc2V0U2Vzc2lvbkF0dHJpYnV0ZSAqLwpmdW5jdGlvbiBnZXRT
ZXNzaW9uQXR0cmlidXRlKG5hbWUpIHsKICAgIHJldHVybiBfZ2V0U2Vzc2lvbigp
W25hbWVdOwp9CgovKiogc2VuZCByZXF1ZXN0IC0gdXJsIC0gdG8gdGhlIHNlcnZl
ciwgcmVzcG9uc2UgaXMgYWNjZXNzaWJsZSBpbiBkb2N1bWVudCBwYXNzZWQgdG8g
Y2FsbGJhY2sgZnVuY3Rpb24KICAgIERPIE5PVCBTZW5kIGFueXRoaW5nIGJlZm9y
ZSBwYWdlIGlzIGxvYWRlZCEKICovCmZ1bmN0aW9uIHNlbmRTZXJ2ZXJNc2codXJs
LCBjYWxsQmFjaykgewogICAgLyogY2FsbGVkIHdoZW4gZnJhbWUgaXMgbG9hZGVk
ICovCiAgICBmdW5jdGlvbiBfcmVjZWl2ZVNlcnZlclJlc3BvbnNlKGV2KSB7CiAg
ICAgICAgdmFyIGlGcmFtZSA9IHdpbmRvdy5ldmVudCA/IHdpbmRvdy5ldmVudC5z
cmNFbGVtZW50IDogZXYuY3VycmVudFRhcmdldDsgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIElFIDogVzNDCiAgICAgICAgdmFyIGRvYyA9IGlGcmFtZS5jb250
ZW50RG9jdW1lbnQgPyBpRnJhbWUuY29udGVudERvY3VtZW50IDogZG9jdW1lbnQu
ZnJhbWVzKGlGcmFtZS5pZCkuZG9jdW1lbnQ7IC8vIFczQyA6IElFCiAgICAgICAg
aWYgKGlGcmFtZS5jYWxsQmFjaykgaUZyYW1lLmNhbGxCYWNrKGRvYyk7CiAgICAg
ICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChpRnJhbWUuaWQpKTsKICAgIH0KCiAgICB2YXIgaUZyYW1lID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CiAgICBhZGRMaXN0ZW5lcihpRnJh
bWUsICJsb2FkIiwgX3JlY2VpdmVTZXJ2ZXJSZXNwb25zZSk7CiAgICBpRnJhbWUu
c2V0QXR0cmlidXRlKCJpZCIsICJtc2dGcmFtZSIgKyBuZXcgRGF0ZSgpLmdldFRp
bWUoKSk7ICAgLy8gc28gSUUgY2FuIHJldHJpdmUgZG9jdW1lbnQKICAgIGlGcmFt
ZS5zZXRBdHRyaWJ1dGUoInNyYyIsIHVybCk7CiAgICBpRnJhbWUuc2V0QXR0cmli
dXRlKCJzdHlsZSIsICJkaXNwbGF5Om5vbmUiKTsKICAgIGlmIChjYWxsQmFjaykg
aUZyYW1lLmNhbGxCYWNrID0gY2FsbEJhY2s7CiAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGlGcmFtZSk7Cn0KCi8qKgogIGNvcHkgaW5uZXJIVE1MIG9mIHNy
YyBlbGVtZW50IHRvIGlubmVySFRNTCBvZiB0YXJnZXQgZWxlbWVudAoqLwpmdW5j
dGlvbiBjb3B5SW5uZXJIdG1sKHNyYywgdGFyZ2V0KSB7CiAgICB2YXIgZG9tU3Vw
cG9ydGVkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQgPyB0cnVlIDogZmFsc2U7
CiAgICB2YXIgc2UgPSAoZG9tU3VwcG9ydGVkICYmIHR5cGVvZiBzcmMgPT0gInN0
cmluZyIpID8gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc3JjKSA6IHNyYzsKICAg
IHZhciB0ZSA9IChkb21TdXBwb3J0ZWQgJiYgdHlwZW9mIHRhcmdldCA9PSAic3Ry
aW5nIikgPyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0YXJnZXQpIDogdGFyZ2V0
OwogICAgaWYgKHNlLmlubmVySFRNTCAmJiB0ZS5pbm5lckhUTUwpIHRlLmlubmVy
SFRNTCA9IHNlLmlubmVySFRNTDsKfQovKioKIGZpbHRlciBzZWxlY3Qgb3B0aW9u
cywgb3B0aW9ucyB0aGF0IGRvIG5vdCBjb250YWluIGZpbHRlciB0ZXh0IGFyZSBy
ZW1vdmVkCiBpbiBmaXJzdCB1c2UsIG9yaWdpbmFsIHNlbGVjdCBvcHRpb25zIGFy
ZSBiYWNrZWQgdXAgYXMgYXR0cmlidXRlIG9wdGlvbnNDb3B5CiovCmZ1bmN0aW9u
IGZpbHRlclNlbGVjdChzZWxlY3RJZCwgdmFsdWUpIHsKICB2YXIgc2VsZWN0Owog
IGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCAmJiAoc2VsZWN0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoc2VsZWN0SWQpKSAmJiBzZWxlY3Qub3B0aW9ucykg
ewogICAgaWYgKCFzZWxlY3Qub3B0aW9uc0NvcHkpIHsKICAgICAgc2VsZWN0Lm9w
dGlvbnNDb3B5ID0gbmV3IEFycmF5KCk7CiAgICAgIHNlbGVjdC5vcHRpb25UZXh0
cyA9IG5ldyBBcnJheSgpOwogICAgICBmb3IgKHZhciBpPTA7IGk8c2VsZWN0Lm9w
dGlvbnMubGVuZ3RoOyBpKyspIHsKICAgICAgICB2YXIgb3B0ID0gc2VsZWN0Lm9w
dGlvbnNbaV07CiAgICAgICAgc2VsZWN0Lm9wdGlvbnNDb3B5W2ldID0gb3B0Owog
ICAgICAgIHNlbGVjdC5vcHRpb25UZXh0c1tpXSA9IG9wdC50ZXh0LnRvTG93ZXJD
YXNlKCk7CiAgICAgIH0KICAgIH0KICAgIHZhbHVlID0gdmFsdWUudG9Mb3dlckNh
c2UoKTsKICAgIHZhciBhbGxUZXh0cyA9IHNlbGVjdC5vcHRpb25UZXh0czsKICAg
IHZhciBkaXNwbGF5T3B0aW9ucyA9IHNlbGVjdC5vcHRpb25zOwogICAgdmFyIGNv
dW50ID0gZGlzcGxheU9wdGlvbnMubGVuZ3RoID0gMDsKICAgIGZvciAodmFyIGk9
MDsgaSA8IGFsbFRleHRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIGlmIChhbGxUZXh0
c1tpXS5pbmRleE9mKHZhbHVlKSAhPSAtMSkgewogICAgICAgIHZhciBvcHRpb24g
PSBzZWxlY3Qub3B0aW9uc0NvcHlbaV07CiAgICAgICAgZGlzcGxheU9wdGlvbnNb
Y291bnQrK10gPSBvcHRpb247CiAgICAgICAgb3B0aW9uLnNlbGVjdGVkID0gb3B0
aW9uLnRleHQgPT0gdmFsdWU7CiAgICAgIH0KICAgIH0KICAgIGlmIChjb3VudCA9
PSAxKSBkaXNwbGF5T3B0aW9uc1swXS5zZWxlY3RlZCA9IHRydWU7CiAgfQp9Cgpm
dW5jdGlvbiBwb3B1cEVsZW1lbnQoZWwsIGFuY2hvciwgd2luZG93UGFyYW1zKSB7
CiAgICBpZiAodHlwZW9mIGVsID09ICJzdHJpbmciKSB7IC8vIGVsIGlzIGlkCiAg
ICAgICAgZWwgPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQpID8gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoZWwpIDoKICAgICAgICAgICAgIChkb2N1bWVudC5hbGwp
ID8gZG9jdW1lbnQuYWxsW2VsXSA6IGZhbHNlOwogICAgfQogICAgaWYgKGVsKSB7
CiAgICAgICAgdmFyIHRtcDsKICAgICAgICBpZiAoZWwucG9wdXBXaW5kb3cgJiYg
IWVsLnBvcHVwV2luZG93LmNsb3NlZCkgewogICAgICAgICAgICBlbC5wb3B1cFdp
bmRvdy5mb2N1cygpOwogICAgICAgICAgICB0bXAgPSBlbC5wb3B1cFdpbmRvdy5k
b2N1bWVudDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZighd2luZG93
UGFyYW1zKSB3aW5kb3dQYXJhbXMgPSB7fTsKICAgICAgICAgICAgZWwucG9wdXBX
aW5kb3cgPSB3aW5kb3cub3BlbignJywKICAgICAgICAgICAgICAgIHdpbmRvd1Bh
cmFtcy5uYW1lP3dpbmRvd1BhcmFtcy5uYW1lOicnLAogICAgICAgICAgICAgICAg
d2luZG93UGFyYW1zLmZlYXR1cmVTdHJpbmc/d2luZG93UGFyYW1zLmZlYXR1cmVT
dHJpbmc6J3Jlc2l6YWJsZT15ZXMsc2Nyb2xsYmFycz15ZXMsd2lkdGg9NjAwLGhl
aWdodD01MDAnKTsKICAgICAgICAgICAgdG1wID0gZWwucG9wdXBXaW5kb3cuZG9j
dW1lbnQ7CiAgICAgICAgICAgIHRtcC53cml0ZWxuKCc8aHRtbD48aGVhZD48dGl0
bGU+Jytkb2N1bWVudC50aXRsZSsnPC90aXRsZT48c3R5bGUgdHlwZT0idGV4dC9j
c3MiPicpOwogICAgICAgICAgICB2YXIgc3R5bGVTaGVldHMgPSBkb2N1bWVudC5z
dHlsZVNoZWV0czsKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IHN0eWxlU2hl
ZXRzICYmIGkgPCBzdHlsZVNoZWV0cy5sZW5ndGg7IGkrKykgewogICAgICAgICAg
ICAgICAgdmFyIGNzcyA9IHN0eWxlU2hlZXRzLml0ZW0oaSk7CiAgICAgICAgICAg
ICAgICBpZiAoY3NzLmNzc1RleHQpIHRtcC53cml0ZWxuKGNzcy5jc3NUZXh0KTsK
ICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIHZhciBj
c3NSdWxlcyA9IGNzcy5ydWxlcyA/IGNzcy5ydWxlcyA6IGNzcy5jc3NSdWxlczsK
ICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgY3NzUnVsZXMgJiYg
aiA8IGNzc1J1bGVzLmxlbmd0aDsgaisrKSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIHRtcC53cml0ZWxuKGNzc1J1bGVzLml0ZW0oaikuY3NzVGV4dCk7CiAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9
CiAgICAgICAgICAgIHRtcC53cml0ZWxuKCc8L3N0eWxlPjwvaGVhZD48Ym9keSBp
ZD0iJyArIGVsLmlkICsgJyI+Jyk7CiAgICAgICAgICAgIHRtcC53cml0ZWxuKGVs
LmlubmVySFRNTCk7CiAgICAgICAgICAgIHRtcC53cml0ZWxuKCc8L2JvZHk+PC9o
dG1sPicpOwogICAgICAgICAgICB0bXAuY2xvc2UoKTsKICAgICAgICB9CiAgICAg
ICAgaWYgKGFuY2hvcikgewogICAgICAgICAgICB2YXIgdGFyZ2V0ID0gKHRtcC5n
ZXRFbGVtZW50QnlJZCkgPyB0bXAuZ2V0RWxlbWVudEJ5SWQoYW5jaG9yKSA6CiAg
ICAgICAgICAgICAgICAodG1wLmFsbCkgPyB0bXAuYWxsW2FuY2hvcl0gOiBmYWxz
ZTsKICAgICAgICAgICAgaWYgKHRhcmdldCkgewogICAgICAgICAgICAgICAgaWYg
KHRhcmdldC5zY3JvbGxJbnRvVmlldykgdGFyZ2V0LnNjcm9sbEludG9WaWV3KCk7
CiAgICAgICAgICAgICAgICBlbHNlIGlmICh3aW5kb3cuc2Nyb2xsICYmIHRhcmdl
dC5vZmZzZXRUb3ApIGVsLnBvcHVwV2luZG93LnNjcm9sbCgwLCB0YXJnZXQub2Zm
c2V0VG9wKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCX0KfQoKLyoqCW1hcmtz
IGFsbCBjaGVjayBib3ggKi8KZnVuY3Rpb24gbWFya0FsbENoZWNrYm94ZXMoYUZv
cm0sIGFOYW1lUHJlZml4LCBhQ2hlY2tlZCkKewoJdmFyIGVsbXRzID0gYUZvcm0u
ZWxlbWVudHM7Cglmb3IgKHZhciBpPTA7IGk8ZWxtdHMubGVuZ3RoOyBpKyspCgkJ
aWYgKChlbG10c1tpXS50eXBlID09ICJjaGVja2JveCIpICYmCgkJCShlbG10c1tp
XS5uYW1lLmluZGV4T2YoYU5hbWVQcmVmaXgpID09IDApKQoJCQllbG10c1tpXS5j
aGVja2VkID0gYUNoZWNrZWQ7Cn0KCmZ1bmN0aW9uIHN1Ym1pdE11bHRpQXJ0aWNs
ZXMoYUZvcm0sIGFjdGlvbiwgYU1hcmthbGwsIGVycm9yTWVzc2FnZSkgewogICAg
dmFyIGhhc01hcmtlZCA9IGZhbHNlOwogICAgdmFyIGVsbXRzID0gYUZvcm0uZWxl
bWVudHM7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsbXRzLmxlbmd0aDsgaSsr
KSB7CgkJaWYgKChlbG10c1tpXS5uYW1lID09ICJkb2kiKSAmJgoJCQkoZWxtdHNb
aV0udHlwZSA9PSAiY2hlY2tib3giKSAmJgoJCQkoZWxtdHNbaV0uY2hlY2tlZCkp
IHsKCQkJaGFzTWFya2VkID0gdHJ1ZTsKCQl9CiAgICB9CgogICAgaWYgKCFoYXNN
YXJrZWQpIHsKCQlpZiAoYU1hcmthbGwpIHsKCQkJbWFya0FsbENoZWNrYm94ZXMo
YUZvcm0sICJkb2kiLCB0cnVlKTsKCQl9IGVsc2UgewoJCQlhbGVydChlcnJvck1l
c3NhZ2UgPyBlcnJvck1lc3NhZ2UgOiAiUGxlYXNlIGNoZWNrIGF0IGxlYXN0IG9u
ZSBhcnRpY2xlLiIpOwogICAgCSAgICByZXR1cm47CgkJfQoJfQoKCWZvciAodmFy
IGkgPSAwOyBpIDwgZWxtdHMubGVuZ3RoOyBpKyspIHsKCQlpZiAoKGVsbXRzW2ld
Lm5hbWUgPT0gImRvaSIpICYmCgkJCShlbG10c1tpXS50eXBlICE9ICJjaGVja2Jv
eCIpKSB7CgkJCWVsbXRzW2ldLm5hbWUgPSAieGRvaSI7CgkJfQoJfQoKCWlmIChh
Rm9ybS5nZXRBdHRyaWJ1dGVOb2RlKSB7CgkJYUZvcm0uZ2V0QXR0cmlidXRlTm9k
ZSgiYWN0aW9uIikubm9kZVZhbHVlID0gYWN0aW9uOwoJfSBlbHNlIHsKCQlhRm9y
bS5hY3Rpb24gPSBhY3Rpb247Cgl9CiAgICBhRm9ybS5tZXRob2QgPSAicG9zdCI7
CiAgICBhRm9ybS5zdWJtaXQoKTsKfQoKZnVuY3Rpb24gc2V0Q2hlY2tXaGVuRGVm
aW5lKGFDYngsIGFTdGF0ZSkKewoJaWYgKGFDYngpIHsKCQlhQ2J4LmNoZWNrZWQg
PSBhU3RhdGU7Cgl9Cn0KCi8vIC0tLSBzaWRlIHNmeCBsaW5rcyAtLS0KLy8KZnVu
Y3Rpb24gZ2VuU2lkZUNpdGF0aW9uKGRiaWQsIGxpbmtvdXRVcmwsIGRpc3BsYXkp
IHsKCWdlblNpZGUoJ2NpdGF0aW9uJywgZGJpZCwgbGlua291dFVybCwgZGlzcGxh
eSk7Cn0KZnVuY3Rpb24gZ2VuU2lkZVF1aWNrU2VhcmNoKGRiaWQsIHZhbHVlLCBk
aXNwbGF5KSB7CglnZW5TaWRlKCdxdWlja3NlYXJjaCcsIGRiaWQsICcnLCBkaXNw
bGF5LCAnJywgJycsICcnLCB2YWx1ZSk7Cn0KZnVuY3Rpb24gZ2VuU2lkZVJlbGF0
ZWQoZGJpZCwgbGlua291dFVybCwgZGlzcGxheSkgewoJZ2VuU2lkZSgncmVsYXRl
ZCcsIGRiaWQsIGxpbmtvdXRVcmwsIGRpc3BsYXkpOwp9CgovLyAtLS0gcG9wdXAg
LS0tCi8vCi8qRnVuY3Rpb24gdG8gZ2VuZXJhdGUgYSBwb3B1cCB3aW5kb3csIHdp
dGggcGFyYW1zIHRvIHBhc3MgdG8gZGlzcGF0Y2hlciAqLwpmdW5jdGlvbiBwb3B1
cChjaXRhcnQsIGlkLCBkb2ksIHB0eXBlLCBhcmVhKSB7Cglwb3B1cFJlZihjaXRh
cnQsIGlkLCBkb2ksIHB0eXBlLCBhcmVhLCA2MDAsIDUwMCk7Cn0KCmZ1bmN0aW9u
IHBvcHVwRnVsbChpZCwgZG9pLCBwdHlwZSwgYXJlYSwgd2lkdGgsIGhlaWdodCkg
ewogICAgdmFyIHBvcHVwVVJMID0gIi9hY3Rpb24vc2hvd0Z1bGxQb3B1cD9pZD0i
ICsgaWQgKyAiJmRvaT0iICsgZG9pOwogICAgaWYgKGFyZWEpIHBvcHVwVVJMICs9
ICImYXJlYT0iICsgYXJlYTsKICAgIGlmIChwdHlwZSkgcHR5cGUgPSBwdHlwZS5y
ZXBsYWNlKC9cVy9nLCAnJyk7CiAgICB2YXIgd2lubmFtZSA9IHB0eXBlID8gcHR5
cGUgOiAncG9wdXBSZWYnOwoJdmFyIG4gPSB3aW5kb3cub3Blbihwb3B1cFVSTCwg
d2lubmFtZSwgJ3Jlc2l6YWJsZT15ZXMsc2Nyb2xsYmFycz15ZXMsd2lkdGg9Jyt3
aWR0aCsnLGhlaWdodD0nK2hlaWdodCk7CgluLm1vdmVUbygxMCwxMCk7CgluLmZv
Y3VzKCk7Cn0KZnVuY3Rpb24gcG9wdXBSZWYoY2l0YXJ0LCBpZCwgZG9pLCBwdHlw
ZSwgYXJlYSwgd2lkdGgsIGhlaWdodCkgewogICAgdmFyIHBvcHVwVVJMID0gIi9h
Y3Rpb24vc2hvd1BvcHVwP2NpdGlkPSIgKyBjaXRhcnQgKyAiJmlkPSIgKyBpZCAr
ICImZG9pPSIgKyBkb2k7CiAgICBpZiAoYXJlYSkgcG9wdXBVUkwgKz0gIiZhcmVh
PSIgKyBhcmVhOwogICAgaWYgKHB0eXBlKSBwdHlwZSA9IHB0eXBlLnJlcGxhY2Uo
L1xXL2csICcnKTsKICAgIHZhciB3aW5uYW1lID0gcHR5cGUgPyBwdHlwZSA6ICdw
b3B1cFJlZic7Cgl2YXIgbiA9IHdpbmRvdy5vcGVuKHBvcHVwVVJMLCB3aW5uYW1l
LCAncmVzaXphYmxlPXllcyxzY3JvbGxiYXJzPXllcyx3aWR0aD0nK3dpZHRoKycs
aGVpZ2h0PScraGVpZ2h0KTsKCW4ubW92ZVRvKDEwLDEwKTsKCW4uZm9jdXMoKTsK
fQoKZnVuY3Rpb24gcG9wdXBIZWxwNTUwKGFVcmwpCnsKCXBvcHVwSGVscFgoYVVy
bCwgIndpZHRoPTU1MCxoZWlnaHQ9NTQwLHRvcD0xMCxsZWZ0PTUwLHRvb2xiYXI9
MCxtZW51YmFyPTAscmVzaXphYmxlPXllcyxzY3JvbGxiYXJzPXllcyIpOwp9CmZ1
bmN0aW9uIHBvcHVwSGVscDU4MChhVXJsKQp7Cglwb3B1cEhlbHBYKGFVcmwsICJ3
aWR0aD01ODAsaGVpZ2h0PTU0MCx0b3A9MTAsbGVmdD01MCx0b29sYmFyPTAsbWVu
dWJhcj0wLHJlc2l6YWJsZT15ZXMsc2Nyb2xsYmFycz15ZXMiKTsKfQpmdW5jdGlv
biBwb3B1cEhlbHA2MjUoYVVybCkKewoJcG9wdXBIZWxwWChhVXJsLCAid2lkdGg9
NjI1LGhlaWdodD01NDAsdG9wPTEwLGxlZnQ9NTAsdG9vbGJhcj0wLG1lbnViYXI9
MCxyZXNpemFibGU9eWVzLHNjcm9sbGJhcnM9eWVzIik7Cn0KZnVuY3Rpb24gcG9w
dXBIZWxwWChhVXJsLCBhV2luUHJvcHMpCnsKCXZhciB3aW5pZCA9IHdpbmRvdy5v
cGVuKGFVcmwsInBvcHVwSGVscCIsYVdpblByb3BzKTsKICAgIGlmICh3aW5pZC5m
b2N1cykgd2luaWQuZm9jdXMoKTsKICAgIHJldHVybiBmYWxzZTsKfQpmdW5jdGlv
biBwb3B1cEhlbHAoYVVybCkKewoJcG9wdXBIZWxwNTgwKGFVcmwpOwp9CgovKiBG
dW5jdGlvbiB0byBvcGVuIHVwIGEgbmV3IGJyb3dzZXIgd2luZG93LCB3aXRob3V0
IGEgbmF2aWdhdGlvbiBiYXIgKi8KZnVuY3Rpb24gcG9wdXBDb3ZlckltYWdlKHVy
bCkKewogICAgdmFyIG5ld193aW5kb3c7CiAgICB2YXIgd2luZG93UHJvcGVydGll
czsKICAgIHdpbmRvd1Byb3BlcnRpZXMgPSAid2lkdGg9NzUwLGhlaWdodD03MDAs
dG9wPTMwLGxlZnQ9MjMwLHRvb2xiYXI9MCxtZW51YmFyPTAscmVzaXphYmxlPTEs
c2Nyb2xsYmFycz15ZXMiOwogICAgaWYobmV3X3dpbmRvdz09bnVsbCkgewogICAg
ICAgbmV3X3dpbmRvdyA9IHdpbmRvdy5vcGVuKHVybCxudWxsLHdpbmRvd1Byb3Bl
cnRpZXMpOwogICAgfSBlbHNlIHsKICAgICAgIG5ld193aW5kb3cuZG9jdW1lbnQu
cmVwbGFjZSh1cmwpOwogICAgfQp9CgovLyAtLS0gcXVpY2sgc2VhcmNoIC0tLQov
LwovKioKICoJZ2V0IGFsbCB0aGUgZm9ybSBlbGVtZW50cyBhbmQgY2hlY2sgaWYg
dGhlICJkYm5hbWUiCiAqCW1hcHMgdG8gc3BlY2lmaWQgdmFsdWUuCiAqLwpmdW5j
dGlvbiBjaGVja0RiTmFtZShhRm9ybSwgYVZhbHVlKQp7Cgl2YXIgZWxlbWVudHMg
PSBhRm9ybS5lbGVtZW50czsKCWZvciAodmFyIGk9MDsgaTxlbGVtZW50cy5sZW5n
dGg7IGkrKykKCXsKCQl2YXIgZWxtdCA9IGVsZW1lbnRzW2ldOwoJCWlmIChlbG10
Lm5hbWUgPT0gImRibmFtZSIpCgkJewoJCQlpZiAoZWxtdC5vcHRpb25zKSB7CgkJ
CQlpZiAoKGVsbXQudmFsdWUgPT0gYVZhbHVlKSB8fAoJCQkJCShlbG10Lm9wdGlv
bnNbZWxtdC5zZWxlY3RlZEluZGV4XS52YWx1ZSA9PSBhVmFsdWUpKQoJCQkJCXJl
dHVybiB0cnVlOwoJCQl9CgkJCWVsc2UgaWYgKGVsbXQuY2hlY2tlZCAmJiAoZWxt
dC52YWx1ZSA9PSBhVmFsdWUpKSB7CgkJCQlyZXR1cm4gdHJ1ZTsKCQkJfQoJCX0K
CX0KCXJldHVybiBmYWxzZTsKfQoKZnVuY3Rpb24gb25BdXRob3JTZWFyY2hDbGlj
ayhhRm9ybSkKewoJaWYgKCEgYUZvcm0pIHsKCQlhRm9ybSA9IGRvY3VtZW50LmRv
Y3VtZW50LmZvcm1zWzBdOwoJfQoJdmFyIGVsbXRzID0gYUZvcm0uZWxlbWVudHM7
Cgl2YXIgYXV0aG9ycyA9IG5ldyBBcnJheSgpOwoJdmFyIGtleXdvcmRzID0gbmV3
IEFycmF5KCk7CglnZXRBdXRob3JzQW5kS2V5d29yZHMoYUZvcm0sIGF1dGhvcnMs
IGtleXdvcmRzLCBmYWxzZSk7CglpZiAoY2hlY2tEYk5hbWUoYUZvcm0sICJtZWRs
aW5lIikpIHsKCQlzaG93UHViTWVkU2VhcmNoKGF1dGhvcnMsIGtleXdvcmRzKTsK
CX0gZWxzZSBpZiAoY2hlY2tEYk5hbWUoYUZvcm0sICJhZHMiKSkgewoJCXNob3dB
ZHNTZWFyY2goYXV0aG9ycywga2V5d29yZHMpOwoJfSBlbHNlIGlmIChjaGVja0Ri
TmFtZShhRm9ybSwgImNyb3NzcmVmIikpIHsKCQlzaG93Q3Jvc3NSZWZTZWFyY2go
YXV0aG9ycywga2V5d29yZHMpOwoJfSBlbHNlIHsKCQl2YXIgdXJsID0gIi9hY3Rp
b24vZG9TZWFyY2g/YWN0aW9uPXNlYXJjaEF1dGhvciI7CgkJZm9yICh2YXIgaT0w
OyBpPGVsbXRzLmxlbmd0aDsgaSsrKSB7CgkJCWlmICghIGVsbXRzW2ldLm5hbWUp
CgkJCQljb250aW51ZTsKCQkJdmFyIGFkZEVsbXQgPSBmYWxzZTsKCQkJaWYgKGVs
bXRzW2ldLnR5cGUgPT0gImNoZWNrYm94IikKCQkJCWFkZEVsbXQgPSBlbG10c1tp
XS5jaGVja2VkOwoJCQllbHNlCgkJCQlhZGRFbG10ID0gKGVsbXRzW2ldLnZhbHVl
Lmxlbmd0aCA+IDApOwoJCQlpZiAoYWRkRWxtdCkKCQkJCXVybCArPSAiJiIgKyBl
bG10c1tpXS5uYW1lICsgIj0iICsgZWxtdHNbaV0udmFsdWU7CgkJfQoJCXdpbmRv
dy5sb2NhdGlvbiA9IHVybDsKCX0KfQoKLyoqCiAqCUBwYXJhbQlhQXV0aG9yQXJy
YXkJYXJyYXkgc3RvcmVzIGFsbCBhdXRob3JzCiAqCUBwYXJhbQlhS2V5d29yZEFy
cmF5CWFycmF5IHN0b3JlcyBhbGwga2V5d29yZHMKICovCmZ1bmN0aW9uIGdldEF1
dGhvcnNBbmRLZXl3b3JkcyhhRm9ybSwgYUF1dGhvckFycmF5LCBhS2V5d29yZEFy
cmF5LCBhRm9yY2VBZGQpCnsKCXNldENoZWNrV2hlbkRlZmluZShhRm9ybS5zYXV0
aHVzZXJjYngsIHRydWUpOwoJc2V0Q2hlY2tXaGVuRGVmaW5lKGFGb3JtLmtleXVz
ZXJjYngsIHRydWUpOwoKCXZhciBlbGVtZW50cyA9IGFGb3JtLmVsZW1lbnRzOwoJ
dmFyIGNudEF1dGhvciA9IC0xOwoJdmFyIGNudEtleXdvcmQgPSAtMTsKCWZvciAo
dmFyIGk9MDsgaTxlbGVtZW50cy5sZW5ndGg7IGkrKykKCXsKCQl2YXIgZWxtdCA9
IGVsZW1lbnRzW2ldOwoJCWlmICgoZWxtdC5uYW1lID09ICJzYXV0aGNieCIpIHx8
CgkJCShlbG10Lm5hbWUgPT0gInNhdXRodXNlcmNieCIpKQoJCXsKCQkJaWYgKGVs
bXQubmFtZSA9PSAic2F1dGh1c2VyY2J4IikgewoJCQkJY250QXV0aG9yKys7CgkJ
CX0KCQkJaWYgKGFGb3JjZUFkZCkgewoJCQkJZWxtdC5jaGVja2VkID0gdHJ1ZTsK
CQkJfSBlbHNlIGlmICghIGVsbXQuY2hlY2tlZCkgewoJCQkJY29udGludWU7CgkJ
CX0KCgkJCXZhciByZXN1bHQgPSBudWxsOwoJCQlpZiAoZWxtdC5uYW1lID09ICJz
YXV0aHVzZXJjYngiKSB7CgkJCQl2YXIgc2F0ID0gYUZvcm0uc2F1dGh0ZXh0OwoJ
CQkJcmVzdWx0ID0gc2F0Lmxlbmd0aCA/IHNhdFtjbnRBdXRob3JdLnZhbHVlIDog
c2F0LnZhbHVlOwoJCQkJaWYgKHJlc3VsdCA9PSAiIikgewoJCQkJCWFGb3JtLnNh
dXRodXNlcmNieC5jaGVja2VkID0gZmFsc2U7CgkJCQl9CgkJCX0gZWxzZSB7CgkJ
CQlyZXN1bHQgPSBlbG10LnZhbHVlOwoJCQl9CgkJCWlmIChyZXN1bHQgIT0gIiIp
IHsKCQkJCWFBdXRob3JBcnJheVthQXV0aG9yQXJyYXkubGVuZ3RoXSA9IHJlc3Vs
dDsKCQkJfQoJCX0KCQllbHNlIGlmICgoZWxtdC5uYW1lID09ICJrZXljYngiKSB8
fAoJCQkJIChlbG10Lm5hbWUgPT0gImtleXVzZXJjYngiKSkKCQl7CgkJCWlmIChl
bG10Lm5hbWUgPT0gImtleXVzZXJjYngiKSB7CgkJCQljbnRLZXl3b3JkKys7CgkJ
CX0KCQkJaWYgKGFGb3JjZUFkZCkgewoJCQkJZWxtdC5jaGVja2VkID0gdHJ1ZTsK
CQkJfSBlbHNlIGlmICghIGVsbXQuY2hlY2tlZCkgewoJCQkJY29udGludWU7CgkJ
CX0KCgkJCXZhciByZXN1bHQgPSBudWxsOwoJCQlpZiAoZWxtdC5uYW1lID09ICJr
ZXl1c2VyY2J4IikgewoJCQkJdmFyIGt3dCA9IGFGb3JtLmtleXRleHQ7CgkJCQly
ZXN1bHQgPSBrd3QubGVuZ3RoID8ga3d0W2NudEtleXdvcmRdLnZhbHVlIDoga3d0
LnZhbHVlOwoJCQkJaWYgKHJlc3VsdCA9PSAiIikgewoJCQkJCWFGb3JtLmtleXVz
ZXJjYnguY2hlY2tlZCA9IGZhbHNlOwoJCQkJfQoJCQl9IGVsc2UgewoJCQkJcmVz
dWx0ID0gZWxtdC52YWx1ZTsKCQkJfQoJCQlpZiAocmVzdWx0ICE9ICIiKSB7CgkJ
CQlhS2V5d29yZEFycmF5W2FLZXl3b3JkQXJyYXkubGVuZ3RoXSA9IHJlc3VsdDsK
CQkJfQoJCX0KCX0KCS8vIHdoZW4gdGhlcmUgaXMgbm8gc2VsZWN0aW9uLCBhZGQg
dGhlbSBhbGwKCWlmICgoISBhRm9yY2VBZGQpICYmIChhQXV0aG9yQXJyYXkubGVu
Z3RoPT0wICYmIGFLZXl3b3JkQXJyYXkubGVuZ3RoPT0wKSkgewoJCWdldEF1dGhv
cnNBbmRLZXl3b3JkcyhhRm9ybSwgYUF1dGhvckFycmF5LCBhS2V5d29yZEFycmF5
LCB0cnVlKTsKCX0KfQoKZnVuY3Rpb24gZW5jb2RlTGlua091dFVybChhVXJsKQp7
Cgl2YXIgcmVzdWx0ID0gIiI7Cglmb3IgKHZhciBpPTA7IGk8YVVybC5sZW5ndGg7
IGkrKykgewoJCXZhciBlbmNvZGVkID0gYVVybC5jaGFyQXQoaSk7CgkJc3dpdGNo
IChlbmNvZGVkKSB7CgkJCWNhc2UgJz8nOgoJCQljYXNlICcmJzoJZW5jb2RlZCA9
IGVzY2FwZShlbmNvZGVkKTsJYnJlYWs7CgkJCWRlZmF1bHQ6CS8vIGRvZXMgbm90
aGluZwoJCX0KCQlyZXN1bHQgKz0gZW5jb2RlZDsKCX0KCXJldHVybiByZXN1bHQ7
Cn0KCmZ1bmN0aW9uIHNob3dFeHRlcm5hbFNlYXJjaChhRGJJZCwgYVVybCkKewoJ
cG9wdXBIZWxwKCIvc2VydmxldC9saW5rb3V0P3R5cGU9c2VhcmNoJmRiaWQ9Iith
RGJJZCsiJnVybD0iK2VuY29kZUxpbmtPdXRVcmwoYVVybCkpOwp9CgovLyBwdWJt
ZWQgdXJsIGZvcm1hdDoKLy8gaHR0cDovL3d3dy5uY2JpLm5sbS5uaWguZ292L2Vu
dHJlei9xdWVyeS5mY2dpCi8vICAgP2RvcHQ9RG9jU3VtJmNtZD1TZWFyY2gmZGI9
UHViTWVkCi8vICAgJnRlcm09QmhhdG5hZ2FyW0FVXStPUitCYWdjaGlbQVVdCi8v
CmZ1bmN0aW9uIHNob3dQdWJNZWRTZWFyY2goYUF1dGhvcnMsIGFLZXl3b3JkcykK
ewoJdmFyIHBtdXJsID0gImh0dHA6Ly93d3c0Lm5jYmkubmxtLm5paC5nb3YvUHVi
TWVkLyI7CglpZiAoKGFBdXRob3JzLmxlbmd0aD4wKSB8fCAoYUtleXdvcmRzLmxl
bmd0aD4wKSkKCXsKCQlwbXVybCA9ICJodHRwOi8vd3d3Lm5jYmkubmxtLm5paC5n
b3YvZW50cmV6L3F1ZXJ5LmZjZ2k/ZG9wdD1Eb2NTdW0mY21kPVNlYXJjaCZkYj1Q
dWJNZWQmdGVybT0iOwoKCQlmb3IgKHZhciBpPTA7IGk8YUF1dGhvcnMubGVuZ3Ro
OyBpKyspIHsKCQkJcG11cmwgKz0gYUF1dGhvcnNbaV0ucmVwbGFjZSgiLCIsIisi
KTsKCQkJcG11cmwgKz0gIltBVV0iOwoJCQlpZiAoaSA8IGFBdXRob3JzLmxlbmd0
aC0xKSB7CgkJCQlwbXVybCArPSAiK09SKyI7CgkJCX0KCQl9CgoJCWlmICgoYUF1
dGhvcnMubGVuZ3RoPjApICYmIChhS2V5d29yZHMubGVuZ3RoPjApKSB7CgkJCXBt
dXJsICs9ICIrT1IrIjsKCQl9CgoJCWZvciAodmFyIGk9MDsgaTxhS2V5d29yZHMu
bGVuZ3RoOyBpKyspIHsKCQkJcG11cmwgKz0gYUtleXdvcmRzW2ldLnJlcGxhY2Uo
IjoiLCIgIik7CgkJCWlmIChpIDwgYUtleXdvcmRzLmxlbmd0aC0xKSB7CgkJCQlw
bXVybCArPSAiK09SKyI7CgkJCX0KCQl9Cgl9CglzaG93RXh0ZXJuYWxTZWFyY2go
OCwgcG11cmwpOwp9CgovLyBhZHMgdXJsIGZvcm1hdDoKLy8gaHR0cDovL2Fkc2Fi
cy5oYXJ2YXJkLmVkdS9jZ2ktYmluL25waC1hYnNfY29ubmVjdD9kYl9rZXk9QVNU
Ci8vCSZzb3J0PVNDT1JFJnR0bF9zeW49WUVTJnZlcnNpb249MQovLwkmdHh0X3N5
bj1ZRVMmdHh0X2xvZ2ljPUFORCZ0ZXh0PWdhbGF4eSUwRCUwQXN0YXIlMEQlMEFv
Y2VhbgovLwkmYXV0X3N5bj1ZRVMmYXV0X2xvZ2ljPUFORCYmYXV0aG9yPSZhdXRo
b3I9amFjayUwRCUwQXNtaXRoCmZ1bmN0aW9uIHNob3dBZHNTZWFyY2goYUF1dGhv
cnMsIGFLZXl3b3JkcykKewoJdmFyIGFkc3VybCA9ICJodHRwOi8vYWRzYWJzLmhh
cnZhcmQuZWR1L2Fic3RyYWN0X3NlcnZpY2UuaHRtbCI7CglpZiAoKGFBdXRob3Jz
Lmxlbmd0aD4wKSB8fCAoYUtleXdvcmRzLmxlbmd0aD4wKSkKCXsKCQlhZHN1cmwg
PQoJCQkiaHR0cDovL2Fkc2Ficy5oYXJ2YXJkLmVkdS9jZ2ktYmluL25waC1hYnNf
Y29ubmVjdD9kYl9rZXk9QVNUIiArCgkJCSImc29ydD1TQ09SRSZ0dGxfc3luPVlF
UyZ2ZXJzaW9uPTEiICsKCQkJIiZ0eHRfc3luPVlFUyZ0eHRfbG9naWM9QU5EIiAr
CgkJCSImYXV0X3N5bj1ZRVMmYXV0X2xvZ2ljPUFORCI7CgoJCWlmIChhQXV0aG9y
cy5sZW5ndGggPiAwKSB7CgkJCWFkc3VybCArPSAiJmF1dGhvcj0iOwoJCQlmb3Ig
KHZhciBpPTA7IGk8YUF1dGhvcnMubGVuZ3RoOyBpKyspIHsKCQkJCWFkc3VybCAr
PSBhQXV0aG9yc1tpXS5yZXBsYWNlKCIsIiwiJTJDIik7CgkJCQlpZiAoaSA8IGFB
dXRob3JzLmxlbmd0aC0xKSB7CgkJCQkJYWRzdXJsICs9ICIlMEQlMEEiOwoJCQkJ
fQoJCQl9CgkJfQoJCWlmIChhS2V5d29yZHMubGVuZ3RoID4gMCkgewoJCQlhZHN1
cmwgKz0gIiZ0ZXh0PSI7CgkJCWZvciAodmFyIGk9MDsgaTxhS2V5d29yZHMubGVu
Z3RoOyBpKyspIHsKCQkJCWFkc3VybCArPSBhS2V5d29yZHNbaV07CgkJCQlpZiAo
aSA8IGFLZXl3b3Jkcy5sZW5ndGgtMSkgewoJCQkJCWFkc3VybCArPSAiJTBEJTBB
IjsKCQkJCX0KCQkJfQoJCX0KCX0KCXNob3dFeHRlcm5hbFNlYXJjaCg2NCwgYWRz
dXJsKTsKfQoKLy8geHJzIHVybCBmb3JtYXQ6Ci8vIGh0dHA6Ly93d3cuZ29vZ2xl
LmNvbS9jb2JyYW5kP3Jlc3RyaWN0PWNyb3NzcmVmJnNhPVNlYXJjaCsKLy8JJnE9
JTIyc3RlbStjZWxsJTIyKyUyMnR5cGUrMSUyMiZjb2Y9QVdQSUQ6YmJkNmQwMWU5
YTUzMDkyMgpmdW5jdGlvbiBzaG93Q3Jvc3NSZWZTZWFyY2goYUF1dGhvcnMsIGFL
ZXl3b3JkcykKewoJdmFyIHhyc3VybCA9ICJodHRwOi8vd3d3Lmdvb2dsZS5jb20v
Y29icmFuZD9yZXN0cmljdD1jcm9zc3JlZiZzYT1TZWFyY2grJmZpbHRlcj0wJnE9
IjsKCWlmICgoYUF1dGhvcnMubGVuZ3RoPjApIHx8IChhS2V5d29yZHMubGVuZ3Ro
PjApKQoJewoJCXZhciBhcnJheSA9IFthQXV0aG9ycywgYUtleXdvcmRzXTsKCQlm
b3IgKHZhciBpPTA7IGk8YXJyYXkubGVuZ3RoOyBpKyspIHsKCQkJZm9yICh2YXIg
aj0wOyBqPGFycmF5W2ldLmxlbmd0aDsgaisrKSB7CgkJCQl4cnN1cmwgKz0gIiUy
MiIrYXJyYXlbaV1bal0rIiUyMisiOwoJCQl9CgkJfQoJfQoJeHJzdXJsICs9ICIm
Y29mPUFXUElEOmJiZDZkMDFlOWE1MzA5MjIiOwoJc2hvd0V4dGVybmFsU2VhcmNo
KDE2LCB4cnN1cmwpOwp9CgovKioJY3Jvc3NyZWYgc2VhcmNoICovCmZ1bmN0aW9u
IHN1Ym1pdFhyc1NlYXJjaChmcm0pCnsKCWlmICghIGZybSkgewoJCWZybSA9IGRv
Y3VtZW50LmZvcm1zWydmcm1TZWFyY2gnXTsKCX0KCXZhciB4cnN1cmwgPSAiaHR0
cDovL3d3dy5nb29nbGUuY29tL2NvYnJhbmQ/IiArCgkJCQkgInJlc3RyaWN0PSIg
KyBmcm0ucmVzdHJpY3QudmFsdWUgKwoJCQkJICImcT0iICsgZnJtLnNlYXJjaFRl
eHQudmFsdWUgKwoJCQkJICImZmlsdGVyPTAiICsKCQkJCSAiJnNhPVNlYXJjaCsi
ICsKCQkJCSAiJmNvZj1BV1BJRDpiYmQ2ZDAxZTlhNTMwOTIyIjsKCgl2YXIgdXJs
ID0gIi9zZXJ2bGV0L2xpbmtvdXQ/dHlwZT1zZWFyY2gmZGJpZD0xNiZ1cmw9Iitl
bmNvZGVMaW5rT3V0VXJsKHhyc3VybCk7Cgl2YXIgd2lucHJvcHMgPSAid2lkdGg9
NzUwLGhlaWdodD03MDAsdG9wPTEwLGxlZnQ9MjAsdG9vbGJhcj0xLG1lbnViYXI9
MSxyZXNpemFibGU9eWVzLHNjcm9sbGJhcnM9eWVzLHN0YXR1cz15ZXMiOwoJdmFy
IHdpbiA9IHdpbmRvdy5vcGVuKHVybCwgbnVsbCwgd2lucHJvcHMpOwoJaWYgKHdp
biAhPSBudWxsKSB7CgkJd2luLmZvY3VzKCk7Cgl9CglyZXR1cm4gZmFsc2U7Cn0K
CnZhciBzZWFyY2hfaGlnaGxpZ2h0ID0gdHJ1ZTsKZnVuY3Rpb24gaGlnaGxpZ2h0
KCkKewoJdmFyIGZyb20gPSBzZWFyY2hfaGlnaGxpZ2h0ID8gInNlYXJjaFRlcm0i
IDogInNlYXJjaE5vbmUiOwoJdmFyIHRvICAgPSBzZWFyY2hfaGlnaGxpZ2h0ID8g
InNlYXJjaE5vbmUiIDogInNlYXJjaFRlcm0iOwoJdmFyIGVsbXRzID0gZG9jdW1l
bnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNwYW4iKTsKCWZvciAodmFyIGk9MDsg
aTxlbG10cy5sZW5ndGg7IGkrKyl7CgkJdmFyIG5vZGUgPSBlbG10cy5pdGVtKGkp
OwoJCWZvciAodmFyIGo9MDsgajxub2RlLmF0dHJpYnV0ZXMubGVuZ3RoOyBqKysp
IHsKCQkJdmFyIGl0ZW0gPSBub2RlLmF0dHJpYnV0ZXMuaXRlbShqKTsKCQkJaWYg
KChpdGVtLm5vZGVOYW1lID09ICdjbGFzcycpICYmCgkJCQkoaXRlbS5ub2RlVmFs
dWUuaW5kZXhPZihmcm9tKSA9PSAwKSkgewoJCQkJbm9kZS5jbGFzc05hbWUgPSB0
byArIGl0ZW0ubm9kZVZhbHVlLnN1YnN0cmluZyhmcm9tLmxlbmd0aCk7CgkJCX0K
CQl9Cgl9CglzZWFyY2hfaGlnaGxpZ2h0ID0gISBzZWFyY2hfaGlnaGxpZ2h0Owp9
CnZhciBlbWFpbFJlZ3ggPSAvXihbYS16QS1aMC05X1wuXC1dKStcQCgoW2EtekEt
WjAtOVwtXSkrXC4pKyhbYS16QS1aMC05XXsyLDR9KSskLzsKZnVuY3Rpb24gaXNF
bWFpbChlbWFpbCkgewogICAgaWYgKGVtYWlsLnZhbHVlKSBlbWFpbCA9IGVtYWls
LnZhbHVlOyAgIC8vIGlzIGZvcm0gZmllbGQKICAgIHJldHVybiBlbWFpbFJlZ3gu
dGVzdChlbWFpbCk7Cn0KZnVuY3Rpb24gY291bnRTZWxlY3RlZChzZWxlY3QpIHsK
ICAgIHZhciByZXN1bHQgPSAwOwogICAgaWYgKHNlbGVjdC5vcHRpb25zKSBmb3Ig
KHZhciBpID0gMDsgaSA8IHNlbGVjdC5vcHRpb25zLmxlbmd0aDsgaSsrKSBpZiAo
c2VsZWN0Lm9wdGlvbnNbaV0uc2VsZWN0ZWQpIHJlc3VsdCsrOwogICAgcmV0dXJu
IHJlc3VsdDsKfQpmdW5jdGlvbiBjb3VudENoZWNrZWQoZm9ybSwgZmllbGROYW1l
KSB7CiAgICB2YXIgcmVzdWx0ID0gMDsKICAgIHZhciBpdGVtcyA9IGZvcm0uZWxl
bWVudHNbZmllbGROYW1lXTsKICAgIGlmIChpdGVtcykgZm9yICh2YXIgaSA9IDA7
IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykgaWYgKGl0ZW1zW2ldLmNoZWNrZWQpIHJl
c3VsdCsrOwogICAgcmV0dXJuIHJlc3VsdDsKfQpmdW5jdGlvbiBnZXRDb29raWUo
bmFtZSkgewogICAgbmFtZSA9IG5hbWUgKyAiPSI7CiAgICB2YXIgY29va2llcyA9
IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOycpOwogICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBjb29raWVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIGMgPSBjb29r
aWVzW2ldOwogICAgICAgIHdoaWxlIChjLmNoYXJBdCgwKSA9PSAnICcpIGMgPSBj
LnN1YnN0cmluZygxKTsvLyBMVHJpbQogICAgICAgIGlmIChjLmluZGV4T2YobmFt
ZSkgPT0gMCkgcmV0dXJuIGMuc3Vic3RyaW5nKG5hbWUubGVuZ3RoKTsKICAgIH0K
ICAgIHJldHVybiBudWxsOwp9CmZ1bmN0aW9uIHN5bmNTZXNzaW9uKHNpZCwgYXRj
b29raWUpIHsKICAgIGlmIChzaWQpIHsKICAgICAgICB2YXIgdXJsID0gbG9jYXRp
b24uaG9zdDsKICAgICAgICB1cmwgPSB1cmwuaW5kZXhPZigic3RhZ2luZy4iKSA9
PSAwID8gdXJsLnN1YnN0cmluZyg4KSA6ICgic3RhZ2luZy4iICsgdXJsKTsKICAg
ICAgICB1cmwgPSAiaHR0cDovLyIgKyB1cmwgKyAiL3Nlc3Npb24uanNwIiArICI/
SlNFU1NJT05JRD0iICsgc2lkOwogICAgICAgIGlmIChhdGNvb2tpZSkgdXJsICs9
ICImYXRjb29raWU9IiArIGF0Y29va2llOwogICAgICAgIHdpbmRvdy5fc2lkSW1n
ID0gbmV3IEltYWdlOwogICAgICAgIHdpbmRvdy5fc2lkSW1nLnNyYyA9IHVybDsK
ICAgIH0KfQoKZnVuY3Rpb24gY29uZmlybUFjdGlvbih1cmwsIG1zZykgewogICAg
aWYgKGNvbmZpcm0obXNnKSkgZG9jdW1lbnQubG9jYXRpb24gPSB1cmw7Cn0KCmZ1
bmN0aW9uIG1zd29yZDJodG1sKHN0cikKewogICAgaWYgKHN0ciA9PSBudWxsIHx8
IHN0ci5yZXBsYWNlKC9ccy9nLCAiIikgPT0gIiIpIHsKICAgICAgICByZXR1cm4g
c3RyOwogICAgfQogICAgdmFyIGFycmF5ID0gWwogICAgICAgIDgyMTEsICAgIiZu
ZGFzaDsiLAogICAgICAgIDgyMTIsICAgIiZtZGFzaDsiLAogICAgICAgIDgyMTYs
ICAgIiZsc3F1bzsiLAogICAgICAgIDgyMTcsICAgIiZyc3F1bzsiLAogICAgICAg
IDgyMTgsICAgIiZzYnF1bzsiLAogICAgICAgIDgyMTksICAgIiYjeDIwMWI7IiwK
ICAgICAgICA4MjIwLCAgICImbGRxdW87IiwKICAgICAgICA4MjIxLCAgICImcmRx
dW87IiwKICAgICAgICA4MjIyLCAgICImYmRxdW87IiwKICAgICAgICA4MjIzLCAg
ICImI3gyMDFmOyIsCiAgICBdOwogICAgZm9yICh2YXIgaT0wOyBpPGFycmF5Lmxl
bmd0aDsgaSs9MikgewogICAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKG5ldyBSZWdF
eHAoU3RyaW5nLmZyb21DaGFyQ29kZShhcnJheVtpXSksImciKSxhcnJheVtpKzFd
KTsKICAgIH0KICAgIHJldHVybiBzdHI7Cn0KLy8gcmVxdWlyZXMgL3N3Zm9iamVj
dC5qcwpmdW5jdGlvbiBhZGRGbGFzaE1vdmllKGlkLCBmbHYpIHsKICAgIHZhciBz
byA9IG5ldyBTV0ZPYmplY3QoJy9mbHZwbGF5ZXIuc3dmJyxpZCwnMzUyJywnMjg4
JywnNycpOwoJc28uYWRkUGFyYW0oJ2FsbG93ZnVsbHNjcmVlbicsJ2ZhbHNlJyk7
Cglzby5hZGRWYXJpYWJsZSgnZmlsZScsZmx2KTsKCXNvLmFkZFZhcmlhYmxlKCd0
eXBlJywnZmx2Jyk7CiAgICBpZiAobmF2aWdhdG9yLmFwcE5hbWUuaW5kZXhPZigi
TWljcm9zb2Z0IikgIT0gLTEpIHsKICAgICAgICAvLyB0aGlzIGlzIG5lZWRlZCBm
b3IgSUUsIGJ1dCBpIGJyZWFrcyBHZWNrbwogICAgICAgIHNvLmFkZFZhcmlhYmxl
KCd3aWR0aCcsJzM1MicpOwogICAgICAgIHNvLmFkZFZhcmlhYmxlKCdoZWlnaHQn
LCcyODgnKTsKICAgIH0KICAgIHNvLndyaXRlKGlkKTsKfQo=
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=script.js
Content-Type: application/x-javascript; charset=UTF-8; name=script.js
Content-Location: http://pubs.acs.org/templates/jsp/_style2/script.js
Content-Transfer-Encoding: Base64
Ly8gQ29tbW9ubHkgdXNlZCBmdW5jdGlvbnMgdGhhdCBkZXBlbmRzIG9uIGxheW91
dCBvZiBfc3R5bGUyIHRlbXBsYXRlCndpbmRvdy5nZXRTaXplPWZ1bmN0aW9uKCkg
ewogIGlmICh0eXBlb2Yod2luZG93LmlubmVyV2lkdGgpPT0nbnVtYmVyJykgcmV0
dXJuIHt3aWR0aDp3aW5kb3cuaW5uZXJXaWR0aCwgaGVpZ2h0OiB3aW5kb3cuaW5u
ZXJIZWlnaHR9CiAgaWYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiAoZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIHx8IGRvY3VtZW50LmRv
Y3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpKSByZXR1cm4ge3dpZHRoOmRvY3Vt
ZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCwgaGVpZ2h0OiBkb2N1bWVu
dC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0fQogIGlmIChkb2N1bWVudC5i
b2R5ICYmIChkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoIHx8IGRvY3VtZW50LmJv
ZHkuY2xpZW50SGVpZ2h0KSkgcmV0dXJuIHt3aWR0aDpkb2N1bWVudC5ib2R5LmNs
aWVudFdpZHRoLCBoZWlnaHQ6IGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0fQog
IHJldHVybiB7d2lkdGg6MCxoZWlnaHQ6MH0KfQp2YXIgcmVzaXplVGltZXI7CmZ1
bmN0aW9uIGRvUmVzaXplKCkgewogIGlmIChyZXNpemVUaW1lcikgY2xlYXJUaW1l
b3V0KHJlc2l6ZVRpbWVyKTsKICByZXNpemVUaW1lcj1zZXRUaW1lb3V0KCJjb250
ZW50UmVzaXplKCApIiwgMTAwKTsKICByZXR1cm4gdHJ1ZTsKfQpmdW5jdGlvbiBk
b1Jlc2l6ZUhlaWdodCgpIHsKICBpZiAocmVzaXplVGltZXIpIGNsZWFyVGltZW91
dChyZXNpemVUaW1lcik7CiAgcmVzaXplVGltZXI9c2V0VGltZW91dCgiaGVpZ2h0
UmVzaXplKCApIiwgMTAwKTsKICByZXR1cm4gdHJ1ZTsKfQoKdmFyIG1pbkNvbnRl
bnRXaWR0aCA9IDQ1MDsKdmFyIG1pbkNvbnRlbnRIZWlnaHQgPSA1MzA7CnZhciBj
b250ZW50SG9yaXpvbnRhbE1hcmdpbnMgPSAoZG9jdW1lbnQuYWxsKSA/IDM3NSA6
IDM4OTsKdmFyIGNvbnRlbnRWZXJ0aWNhbE1hcmdpbnMgPSAwOwp2YXIgcmVzaXpl
QWdhaW49dHJ1ZTsKdmFyIGlzR2Vja28gPSBuYXZpZ2F0b3IudXNlckFnZW50LnRv
TG93ZXJDYXNlKCkuaW5kZXhPZigiZ2Vja28iKSArIDE7IC8vIDB+ZmFsc2UKZnVu
Y3Rpb24gY29udGVudFJlc2l6ZSgpIHsKICB2YXIgd3M9d2luZG93LmdldFNpemUo
KTsKICB2YXIgaD13cy5oZWlnaHQKICB2YXIgdz13cy53aWR0aAogIGlmKHcgJiYg
aCkgewogICAgaCAtPSBjb250ZW50VmVydGljYWxNYXJnaW5zOwogICAgaWYgKGg8
bWluQ29udGVudEhlaWdodCkgaCA9IG1pbkNvbnRlbnRIZWlnaHQ7CiAgICB3IC09
IGNvbnRlbnRIb3Jpem9udGFsTWFyZ2luczsKICAgIGlmICh3PG1pbkNvbnRlbnRX
aWR0aCkgdyA9IG1pbkNvbnRlbnRXaWR0aDsKICAgIHZhciBzdHlsZT1kb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnQ29udGVudCcpLnN0eWxlOwogICAgc3R5bGUuaGVp
Z2h0PWgrInB4IjsKICAgIHN0eWxlLndpZHRoPXcrInB4IjsKICAgIGlmIChkb2N1
bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSkgewogICAgICAgIHN0eWxlPWRvY3Vt
ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JykuaXRlbSgwKS5zdHlsZTsK
ICAgICAgICBzdHlsZS5oZWlnaHQ9aCsicHgiOwogICAgfQogICAgaWYgKHJlc2l6
ZUFnYWluKSB7CiAgICAgIHJlc2l6ZUFnYWluPWZhbHNlOwogICAgICBzZXRUaW1l
b3V0KCJjb250ZW50UmVzaXplKCkiLCA1MCk7CiAgICB9IGVsc2UgewogICAgICBy
ZXNpemVBZ2Fpbj10cnVlOyAgIC8vIGZvciBuZXh0IHJ1bgogICAgICBpZiAobG9j
YXRpb24uaGFzaCkgewogICAgICAgIGlmIChpc0dlY2tvKSB7CiAgICAgICAgICBs
b2NhdGlvbi5oYXNoID0gbG9jYXRpb24uaGFzaDsgLy8gc2Nyb2xsIHRvIGFuY2hv
ciwgSUUgZG9lc24ndCBuZWVkIGl0LCBPcGVyYSBpcyBicm9rZW4KICAgICAgICB9
IGVsc2UgaWYgKGRvY3VtZW50LmFuY2hvcnMpIHsgICAgICAgICAgICAgICAgLy8g
bWF5IGhlbHAgYnJvd3NlcnMgd2l0aCBhbmNob3JzIGNvbGxlY3Rpb24gc3VwcG9y
dCAoT3BlcmEuLi4pCiAgICAgICAgICB2YXIgYW5jaG9yID0gZG9jdW1lbnQuYW5j
aG9yc1tsb2NhdGlvbi5oYXNoXTsKICAgICAgICAgIGlmIChhbmNob3IgJiYgYW5j
aG9yLnNjcm9sbEludG9WaWV3KSBhbmNob3Iuc2Nyb2xsSW50b1ZpZXcoKTsKICAg
ICAgICB9CiAgICAgIH0KICAgIH0KICB9CiAgcmV0dXJuIHRydWU7Cn0KZnVuY3Rp
b24gaGVpZ2h0UmVzaXplKCkgewogIHZhciB3cz13aW5kb3cuZ2V0U2l6ZSgpOwog
IHZhciBoPXdzLmhlaWdodAogIGlmKGgpIHsKICAgIGggLT0gY29udGVudFZlcnRp
Y2FsTWFyZ2luczsKICAgIGlmIChoPG1pbkNvbnRlbnRIZWlnaHQpIGggPSBtaW5D
b250ZW50SGVpZ2h0OwogICAgdmFyIHN0eWxlPWRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdDb250ZW50Jykuc3R5bGU7CiAgICBzdHlsZS5oZWlnaHQ9aCsicHgiOwog
ICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKSB7CiAgICAgICAg
c3R5bGU9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKS5pdGVt
KDApLnN0eWxlOwogICAgICAgIHN0eWxlLmhlaWdodD1oKyJweCI7CiAgICB9CiAg
ICBpZiAocmVzaXplQWdhaW4pIHsKICAgICAgcmVzaXplQWdhaW49ZmFsc2U7CiAg
ICAgIHNldFRpbWVvdXQoImhlaWdodFJlc2l6ZSgpIiwgNTApOwogICAgfSBlbHNl
IHsKICAgICAgcmVzaXplQWdhaW49dHJ1ZTsgICAvLyBmb3IgbmV4dCBydW4KICAg
ICAgaWYgKGxvY2F0aW9uLmhhc2gpIHsKICAgICAgICBpZiAoaXNHZWNrbykgewog
ICAgICAgICAgbG9jYXRpb24uaGFzaCA9IGxvY2F0aW9uLmhhc2g7IC8vIHNjcm9s
bCB0byBhbmNob3IsIElFIGRvZXNuJ3QgbmVlZCBpdCwgT3BlcmEgaXMgYnJva2Vu
CiAgICAgICAgfSBlbHNlIGlmIChkb2N1bWVudC5hbmNob3JzKSB7ICAgICAgICAg
ICAgICAgIC8vIG1heSBoZWxwIGJyb3dzZXJzIHdpdGggYW5jaG9ycyBjb2xsZWN0
aW9uIHN1cHBvcnQgKE9wZXJhLi4uKQogICAgICAgICAgdmFyIGFuY2hvciA9IGRv
Y3VtZW50LmFuY2hvcnNbbG9jYXRpb24uaGFzaF07CiAgICAgICAgICBpZiAoYW5j
aG9yICYmIGFuY2hvci5zY3JvbGxJbnRvVmlldykgYW5jaG9yLnNjcm9sbEludG9W
aWV3KCk7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfQogIHJldHVybiB0cnVl
Owp9CgovKiBGdW5jdGlvbiB0byBsb2FkIGltYWdlcy4KICoJbm90ZTogbWFrZSB0
aGlzIGVtcHR5IG1ldGhvZCBzbyB0aGF0CiAqIDEpIG1pbmluaXplIGNvZGUgY2hh
bmdlczsgMikgZm9yIGZ1dHVyZSBpbnRlZ3JhdGlvbjsgMykgZWFzaWVyIHRvIHRh
a2UgdGhlIGZlYXR1cmUgYmFjawogKi8KCi8qIGZ1bmN0aW9uIHRoYXQgd2lsbCBi
ZSBjYWxsZWQgZnJvbSBkb2N1bWVudC5vbmxvYWQgZXZlbnQKICogbWFpbiBldmVu
dCBoYW5kbGluZywgZm9yIGFsbCBwYWdlcyAqLwpmdW5jdGlvbiBwcmVsb2FkKCkg
ewoJbG9hZCgpOwp9CgovKiBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIGZy
b20gZG9jdW1lbnQub25sb2FkIGV2ZW50CiAqIG92ZXJyaWRlIHRoaXMgZnVuY3Rp
b24gdG8gZG8gaW5kaXZpZHVhbCBvbmxvYWQgZXZlbnQgKi8KZnVuY3Rpb24gbG9h
ZCgpCnsKfQoKLyogRnVuY3Rpb24gdG8gc2hvdyBoZWxwIHBhZ2UgKi8KZnVuY3Rp
b24gcG9wdXBIZWxwKHVybCkKewogICAgLyogRG8gbm90IHBvcHVwIG5ldyB3aW5k
b3cgaWYgbGluayB0YXJnZXQgaXMgc2V0IHRvIF9zZWxmICovCiAgICB2YXIgdGhl
RXZlbnQgPSB3aW5kb3cuZXZlbnQgfHwgYXJndW1lbnRzLmNhbGxlZS5jYWxsZXIu
YXJndW1lbnRzWzBdOwogICAgaWYgKHRoZUV2ZW50KSB7CiAgICAgICAgdmFyIGxp
bmsgPSB0aGVFdmVudC5zcmNFbGVtZW50IHx8IHRoZUV2ZW50LnRhcmdldDsKICAg
ICAgICBpZiAobGluayAmJiBsaW5rLnRhcmdldCA9PSAnX3NlbGYnKSB7CiAgICAg
ICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHVybDsKICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgIH0KICAgIH0KCglwb3B1cEhlbHA1NTAodXJsKTsKfQoK
LyogRnVuY3Rpb24gdG8gb3BlbiB1cCBhIG5ldyBicm93c2VyIHdpbmRvdywgd2l0
aG91dCBhIG5hdmlnYXRpb24gYmFyICovCmZ1bmN0aW9uIG5ld1dpbmRvdyh1cmwp
CnsKICAgIHZhciBuZXdfd2luZG93OwogICAgdmFyIHdpbmRvd1Byb3BlcnRpZXM7
CiAgICB3aW5kb3dQcm9wZXJ0aWVzID0gIndpZHRoPTc1MCxoZWlnaHQ9NzAwLHRv
cD0zMCxsZWZ0PTIzMCx0b29sYmFyPTAsbWVudWJhcj0wLHJlc2l6YWJsZT0xLHNj
cm9sbGJhcnM9eWVzIjsKICAgIGlmKG5ld193aW5kb3c9PW51bGwpIHsKICAgICAg
IG5ld193aW5kb3cgPSB3aW5kb3cub3Blbih1cmwsbnVsbCx3aW5kb3dQcm9wZXJ0
aWVzKTsKICAgIH0gZWxzZSB7CiAgICAgICBuZXdfd2luZG93LmRvY3VtZW50LnJl
cGxhY2UodXJsKTsKICAgIH0KfQoKZnVuY3Rpb24gZ29UbyggdXJsICkgewogICAg
d2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7Cn0KCi8vIGZvciB1c2UgbGlrZSA8
YSBocmVmPSJ4eHgiIG9uQ2xpY2s9InJldHVybiBwYXJlbnRXaW5kb3dHb1RvKHRo
aXMuaHJlZik7Ij54eHg8L2E+CmZ1bmN0aW9uIHBhcmVudFdpbmRvd0dvVG8odXJs
LCBjbG9zZVNlbGYpIHsKCWlmIChzZWxmLm9wZW5lciAhPSBudWxsKSB7CgkJc2Vs
Zi5vcGVuZXIubG9jYXRpb24gPSB1cmw7CgkJc2VsZi5vcGVuZXIuZm9jdXMoKTsK
CX0gZWxzZSB7CgkJc2VsZi5sb2NhdGlvbiA9IHVybDsKCX0KCWlmKGNsb3NlU2Vs
Zikgc2VsZi5jbG9zZSgpOwoJcmV0dXJuIGZhbHNlOwp9CgovKiBGdW5jdGlvbiB0
byBnbyB0byBzZWxlY3RlZCBpdGVtIGluIGRyb3AgZG93biBtZW51ICovCmZ1bmN0
aW9uIEdvVG8oc2VsLCB0YXJnZXRzdHIpCnsKICB2YXIgaW5kZXggPSBzZWwuc2Vs
ZWN0ZWRJbmRleDsKICBpZiAoc2VsLm9wdGlvbnNbaW5kZXhdLnZhbHVlICE9ICcn
KSB7CgkgaWYgKHRhcmdldHN0ciA9PSAnYmxhbmsnKSB7CgkgICB3aW5kb3cub3Bl
bihzZWwub3B0aW9uc1tpbmRleF0udmFsdWUsICd3aW4xJyk7CgkgfSBlbHNlIHsK
CSAgIHZhciBmcmFtZW9iajsKCSAgIGlmICgoZnJhbWVvYmogPSBldmFsKHRhcmdl
dHN0cikpICE9IG51bGwpCgkJIGZyYW1lb2JqLmxvY2F0aW9uID0gc2VsLm9wdGlv
bnNbaW5kZXhdLnZhbHVlOwoJIH0KICB9Cn0KCgovLy8vCi8vLwlzZWFyY2ggcmVs
YXRlZAovLwoKLyoqCWZ1bmN0aW9uIHRvIHNob3cgbmV4dCBzZWFyY2ggcGFnZSAq
LwpmdW5jdGlvbiBzZWFyY2hOZXh0UmVzdWx0UGFnZShhRm9ybSwgYU9mZnNldCkK
ewoJdmFyIHggPSBldmFsKGFGb3JtLnN0YXJ0UGFnZS52YWx1ZSkgKyBhT2Zmc2V0
OwoJYUZvcm0uc3RhcnRQYWdlLnZhbHVlID0geDsKCWFGb3JtLnN1Ym1pdCgpOwp9
CgoKLyoqCWZ1bmN0aW9uIHRvIHN1Ym1pdCBzZWFyY2ggZm9ybSB3aXRoIGZpcnN0
IHBhZ2UgKi8KZnVuY3Rpb24gc2VhcmNoU2hvd0ZpcnN0UGFnZShhRm9ybSwgYUNo
ZWNrU29ydCkKewoJaWYgKGFDaGVja1NvcnQpIHsKCQlpZiAoYUZvcm0uc29ydEJ5
WzBdLmRlZmF1bHRDaGVja2VkID09IGFGb3JtLnNvcnRCeVswXS5jaGVja2VkKSB7
CgkJCXJldHVybjsKCQl9Cgl9CgoJYUZvcm0uc3RhcnRQYWdlLnZhbHVlID0gMDsK
CWFGb3JtLnN1Ym1pdCgpOwp9CgovKioJZnVuY3Rpb24gdG8gY2hhbmdlIHNvcnQg
b3B0aW9uICovCmZ1bmN0aW9uIHNlYXJjaFJlc3VsdE9yZGVyQnkoYUZvcm0sIGFT
b3J0KQp7CglhRm9ybS5zb3J0QnkudmFsdWUgPSBhU29ydDsKCWFGb3JtLnN1Ym1p
dCgpOwp9CgovKioJZnVuY3Rpb24gdG8gcmVzdHJ1Y3Qgc2VhcmNoICovCmZ1bmN0
aW9uIHNlYXJjaFJlc3RyaWN0KGFGb3JtLCBhRmllbGQsIGFWYWx1ZSkgCnsKCXZh
ciBjbGF1c2UgPSAiWyIgKyBhRmllbGQgKyAiOiBcIiIgKyBhVmFsdWUgKyAiXCJd
IjsKCXZhciBhbGwgPSBhRm9ybS5hbGwudmFsdWU7CglpZiAoYWxsLmxlbmd0aCA9
PSAwKSB7CgkJYWxsID0gY2xhdXNlOwoJfSBlbHNlIHsKCQlhbGwgPSAiKCIgKyBh
bGwgKyAiKSBBTkQgIiArIGNsYXVzZTsKCX0KCWFGb3JtLmFsbC52YWx1ZSA9IGFs
bDsKCWFGb3JtLnN1Ym1pdCgpOwp9CgovKioJaW52b2tlIHdoZW4gYSBzZWFyY2gg
cmVzdWx0IGZvcm0gaXMgYmVpbmcgc3VibWl0dGVkICovCmZ1bmN0aW9uIG9uUmVz
dWx0U2VhcmNoRm9ybVN1Ym1pdChhRm9ybSkKewoJaWYgKGFGb3JtLnNlYXJjaFRl
eHQgJiYKCQlhRm9ybS5zZWFyY2hUZXh0LnZhbHVlKSB7CgkJYUZvcm0uc3RhcnRQ
YWdlLnZhbHVlID0gMDsKCX0KCWFGb3JtLnN1Ym1pdCgpOwp9CgoKLyoqCW1vZGlm
eSBjdXJyZW50IHNlYXJjaCBxdWVyeSAqLwpmdW5jdGlvbiBvbk1vZGlmeVNlYXJj
aENsaWNrKGFGb3JtKQp7Cgl2YXIgZWxtdHMgPSBhRm9ybS5lbGVtZW50czsKCWZv
ciAodmFyIGk9MDsgaTxlbG10cy5sZW5ndGg7IGkrKykgewoJCWlmIChlbG10c1tp
XS5uYW1lID09ICJhY3Rpb24iKSB7CgkJCWVsbXRzW2ldLnZhbHVlID0gIm1vZGlm
eVNlYXJjaCI7CgkJCWFGb3JtLnN1Ym1pdCgpOwoJCQlyZXR1cm47CgkJfQoJfQoJ
YWxlcnQoImNhbm5vdCBmaW5kIGZvcm06ICIgKyBhRm9ybS5uYW1lKTsKfQoKCi8q
Kgl1c2VyIGNoYW5nZXMgc2VhcmNoIGhpc3RvcnkgKi8KZnVuY3Rpb24gb25DaGFu
Z2VTZWFyY2hIaXN0b3J5KGFGb3JtKQp7Cgl2YXIgaW5kZXggPSBhRm9ybS5oaXN0
b3J5LnNlbGVjdGVkSW5kZXg7CglpZiAoaW5kZXggPiAwKQoJCXdpbmRvdy5sb2Nh
dGlvbiA9IGFGb3JtLmhpc3Rvcnkub3B0aW9uc1tpbmRleF0udmFsdWU7Cn0KCgov
KioJdXNlciBjbGlja3MgIk1hcmsgb3IgdW5tYXJrIGFsbCBpdGVtcyIgY2hlY2ti
b3ggKi8KZnVuY3Rpb24gb25DbGlja01hcmtBbGwoYUZvcm0sIGFOYW1lUHJlZml4
KQp7CiAgICBpZiAoYUZvcm0gaW5zdGFuY2VvZiBTdHJpbmcpIGFGb3JtID0gZG9j
dW1lbnQuZm9ybXNbYUZvcm1dOwogICAgaWYgKCEgYU5hbWVQcmVmaXgpIHsKCQlh
TmFtZVByZWZpeCA9ICIiOwoJfQoKICAgIHZhciBtYXJrYWxsOwoKICAgIHRyeSB7
CiAgICAgICAgbWFya2FsbCA9IGFGb3JtLm1hcmthbGwuY2hlY2tlZDsKICAgIH0K
ICAgIGNhdGNoKGVycikgeyAvLyBtYXJrYWxsIG1pZ2h0IG5vdCBiZSBpbiB0aGUg
Zm9ybQogICAgICAgIG1hcmthbGwgPSAkKCdtYXJrYWxsJykuY2hlY2tlZDsKICAg
IH0KCgltYXJrQWxsQ2hlY2tib3hlcyhhRm9ybSwgYU5hbWVQcmVmaXgsIG1hcmth
bGwpOwp9CgoKZnVuY3Rpb24gc3VibWl0QXJ0aWNsZXMoYUZvcm0sIGFjdGlvbiwg
ZXJyb3JNZXNzYWdlKSB7CglzdWJtaXRNdWx0aUFydGljbGVzKGFGb3JtLCBhY3Rp
b24sIGZhbHNlLCBlcnJvck1lc3NhZ2UpOwp9CgovKioJc3VibWl0IGZvcm0gaW5z
dGFudGx5ICovCmZ1bmN0aW9uIG9uU2VhcmNoUmFkaW9DbGljayhhUmFkaW8pCnsK
CWRvY3VtZW50LmZvcm1zWydmcm1TZWFyY2gnXS5zdWJtaXQoKTsKfQoKCi8qKgl3
aGVuIHVzZXIgY2xpY2tzIHN1Z2dlc3RlZCBzZWFyY2ggcXVlcnkgKi8KZnVuY3Rp
b24gc3VibWl0U3VnZ2VzdGVkU2VhcmNoKGFRdWVyeSkKewoJdmFyIGZybSA9IGRv
Y3VtZW50LmZvcm1zWydmcm1TZWFyY2gnXTsKCWZybS5wcmV2U2VhcmNoLnZhbHVl
ID0gYVF1ZXJ5LnJlcGxhY2UoL1wrL2csICIlMkIiKTsKCWZybS5zdWJtaXQoKTsK
fQoKCi8qKglpbiBzdWJtaXNzaW9uIG9mIGpvdXJuYWwgc2VhcmNoICovCmZ1bmN0
aW9uIG9uU3VibWl0Sm91cm5hbFNlYXJjaCgpCnsKCXZhciB1cmwgPSAiL2FjdGlv
bi9kb1NlYXJjaD9hY3Rpb249c2VhcmNoIjsKCgl2YXIgZWxtdHMgPSBkb2N1bWVu
dC5mcm1Kb3VybmFsU2VhcmNoLmVsZW1lbnRzOwoJdmFyIHByZXZTZWFyY2ggPSAi
IjsKCWZvciAodmFyIGk9MDsgaTxlbG10cy5sZW5ndGg7IGkrKykKCXsKCQl2YXIg
bmFtZSA9IGVsbXRzW2ldLm5hbWU7CgkJdmFyIHZhbHVlID0gZWxtdHNbaV0udmFs
dWU7CgkJaWYgKHZhbHVlID09ICIiKQoJCQljb250aW51ZTsKCgkJaWYgKG5hbWUu
aW5kZXhPZigiZmllbGQiKSA9PSAtMSkgewoJCQl1cmwgKz0gKCImIiArIG5hbWUg
KyAiPSIgKyB2YWx1ZSk7Ci8vCQl9IGVsc2UgaWYgKG5hbWUgPT0gInZvbHllYXJm
aWVsZCIpIHsKLy8JCQlpZiAocHJldlNlYXJjaC5sZW5ndGggPiAwKQovLwkJCQlw
cmV2U2VhcmNoICs9ICIlMjBhbmQlMjAiOwovLwkJCXByZXZTZWFyY2ggKz0KLy8J
CQkJIiUyQigiICsgX3RvUXVlcnlUZXJtKCJqb3VybmFsdm9sdW1lZmllbGQiLCB2
YWx1ZSkgKwovLwkJCQkiKyIgKwovLwkJCQlfdG9RdWVyeVRlcm0oImpvdXJuYWxw
dWJsaWNhdGlvbnllYXJmaWVsZCIsIHZhbHVlKSArCi8vCQkJCSIpIjsKCQl9IGVs
c2UgewoJCQlpZiAocHJldlNlYXJjaC5sZW5ndGggPiAwKQoJCQkJcHJldlNlYXJj
aCArPSAiKyI7CgkJCXByZXZTZWFyY2ggKz0gX3RvUXVlcnlUZXJtKG5hbWUsIHZh
bHVlKTsKCQl9Cgl9CgoJdXJsICs9ICgiJnByZXZTZWFyY2g9IiArIGVzY2FwZShw
cmV2U2VhcmNoKSk7Cgl3aW5kb3cubG9jYXRpb24gPSB1cmw7Cn0KCgovKioJaGVs
cGVyIG1ldGhvZCBpbiBvblN1Ym1pdEpvdXJuYWxTZWFyY2goKSAqLwpmdW5jdGlv
biBfdG9RdWVyeVRlcm0oYUZpZWxkLCBhVmFsdWUpCnsKCXZhciBteVZhbHVlID0g
YVZhbHVlLnJlcGxhY2UoL1wiL2csICcnKTsKCXZhciBoYXNTcGMgPSBmYWxzZTsK
CWZvciAodmFyIGk9YVZhbHVlLmxlbmd0aC0xOyBpPj0wOyBpLS0pIHsKCQlpZiAo
YVZhbHVlLmNoYXJBdChpKSA9PSAnICcpIHsKCQkJaGFzU3BjID0gdHJ1ZTsKCQkJ
YnJlYWs7CgkJfQoJfQoJaWYgKGhhc1NwYykKCQlteVZhbHVlID0gJ1wiJyArIG15
VmFsdWUgKyAnXCInOwoJcmV0dXJuICgiJTJCIiArIGFGaWVsZCArICIlM0EiICsg
bXlWYWx1ZSkKfQoKCmZ1bmN0aW9uIGNoZWNrRWxlbWVudChhRm9ybSwgYU5hbWUs
IGFWYWx1ZSkKewoJdmFyIGVsbXRzID0gYUZvcm0uZWxlbWVudHM7Cglmb3IgKHZh
ciBpPWVsbXRzLmxlbmd0aC0xOyBpPj0wOyBpPWktMSkKCXsKCQlpZiAoKGVsbXRz
W2ldLm5hbWUgPT0gYU5hbWUpICYmCgkJCShlbG10c1tpXS52YWx1ZSA9PSBhVmFs
dWUpKQoJCXsKCQkJZWxtdHNbaV0uY2hlY2tlZCA9IHRydWU7CgkJCXJldHVybjsK
CQl9Cgl9Cn0KCmZ1bmN0aW9uIGNoZWNrU2VhcmNoSW5wdXQoYUZvcm0pCnsKCWlm
IChhRm9ybS5zZWFyY2hUZXh0LnZhbHVlID09ICJFbnRlciBLZXl3b3JkcyIpIHsK
CQlhbGVydCgiUGxlYXNlIGVudGVyIHNlYXJjaCB0ZXJtcyIpOwoJfSBlbHNlIHsK
CQlhRm9ybS5zdWJtaXQoKTsKCX0KfQoKZnVuY3Rpb24gY2hlY2tWYWx1ZSh2YWx1
ZSwgZXJyb3JWYWx1ZSwgZXJyb3JNZXNzYWdlKSB7CiAgICAgaWYgKHZhbHVlID09
IGVycm9yVmFsdWUpIHsKICAgICAgICAgYWxlcnQoZXJyb3JNZXNzYWdlKTsKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKfQoK
Ly8vLwovLy8JZm9yIHNhdmUgc2VhcmNoCi8vCgpmdW5jdGlvbiBzZWFyY2hTYXZl
UG9wdXAoYUZvcm0pCnsKCXZhciBhY2Nlc3MgPSBhRm9ybS5hY2Nlc3M7CglpZiAo
YWNjZXNzICYmIGFjY2Vzcy52YWx1ZSE9J25vZmlsdGVyJykgewoJCWlmICghIGNv
bmZpcm0oIlNhdmUgU2VhcmNoIHdpbGwgbm90IGluY2x1ZGUgeW91ciBBY2Nlc3Mg
UmlnaHRzIGNyaXRlcmlhLCBkbyB5b3Ugd2FudCB0byBjb250aW51ZT8iKSkgewoJ
CQlyZXR1cm47CgkJfQoJfQoJCgl2YXIgdXJsID0gIi9hY3Rpb24vZG9TYXZlU2Vh
cmNoIjsKCXZhciBuZXdfd2luZG93OwoJdmFyIHdpbmRvd1Byb3BlcnRpZXM7Cgl3
aW5kb3dQcm9wZXJ0aWVzID0gIndpZHRoPTU1MCxoZWlnaHQ9MjUwLHRvb2xiYXI9
MCxtZW51YmFyPTAscmVzaXphYmxlPTEsc2Nyb2xsYmFycz15ZXMiOwoJaWYobmV3
X3dpbmRvdz09bnVsbCkgewoJICAgbmV3X3dpbmRvdyA9IHdpbmRvdy5vcGVuKHVy
bCxudWxsLHdpbmRvd1Byb3BlcnRpZXMpOwoJfSBlbHNlIHsKCSAgIG5ld193aW5k
b3cuZG9jdW1lbnQucmVwbGFjZSh1cmwpOwoJfQp9CgpmdW5jdGlvbiBnZXRTYXZl
U2VhcmNoTmFtZU9iamVjdChhRm9ybSkKewoJdmFyIG9iajsKCWlmICghIGRvY3Vt
ZW50LmFsbCkgewoJCXZhciBhcnIgPSBhRm9ybS5lbGVtZW50czsKCQlmb3IgKHZh
ciBpPTA7ICghIG9iaikgJiYgKGk8YXJyLmxlbmd0aCk7IGkrKykgewoJCQlpZiAo
YXJyW2ldLm5hbWUgPT0gInNhdmVTZWFyY2hOYW1lIikgewoJCQkJb2JqID0gYXJy
W2ldOwoJCQl9CgkJfQoJfSBlbHNlIHsKCQlvYmogPSBkb2N1bWVudC5hbGwuc2F2
ZVNlYXJjaE5hbWU7Cgl9CglyZXR1cm4gb2JqOwp9CgoKZnVuY3Rpb24gcGVyZm9y
bVNhdmVTZWFyY2goYUZvcm0sIGFJc0ZBSikKewoJdmFyIHNsdEFsZXJ0ID0gYUZv
cm0uc2VhcmNoYWxlcnQ7CglpZiAoYUlzRkFKICYmIChzbHRBbGVydC5zZWxlY3Rl
ZEluZGV4PjApKSB7CgkJYWxlcnQoIlNvcnJ5LCBlLW1haWwgYWxlcnQgZm9yIGpv
dXJuYWxzIHdpdGggXG4iICsKCQkJCSJmdWxsIGFjY2VzcyByaWdodHMgaXMgbm90
IGF2YWlsYWJsZS4iKTsKCQlyZXR1cm47Cgl9CgoJdmFyIGVsbXRzID0gYUZvcm0u
ZWxlbWVudHM7Cglmb3IgKHZhciBpPTA7IGk8ZWxtdHMubGVuZ3RoOyBpKyspIHsK
CQlpZiAoZWxtdHNbaV0ubmFtZSA9PSAiYWN0aW9uIikgewoJCQllbG10c1tpXS52
YWx1ZSA9ICJzYXZlIjsKCQkJYUZvcm0uc3VibWl0KCk7CgkJCXJldHVybjsKCQl9
Cgl9CglhbGVydCgiZm9ybSBub3QgZm91bmQ6ICIgKyBhRm9ybS5uYW1lKTsKfQoK
CmZ1bmN0aW9uIHJlc2V0RmllbGQoYUZpZWxkLCBhRGVmYXVsdFRleHQsIGFDb2xv
cikKewoJaWYgKGFGaWVsZC52YWx1ZSA9PSBhRGVmYXVsdFRleHQpIHsKCQlhRmll
bGQudmFsdWUgPSAiIjsKCX0KCWFGaWVsZC5zdHlsZS5jb2xvciA9IGFDb2xvcjsK
fQovL2ZvciBlY29tbTIKZnVuY3Rpb24gc3VibWl0SWZWYWxpZCgpewogICAgdmFy
IHggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiam91cm5hbENvZGUiKTsKICAg
IHZhciBoYXNKb3VybmFsID0geC52YWx1ZSAhPSAiIjsKICAgIGlmIChoYXNKb3Vy
bmFsICYmIGhhc1N1YmNyaWJlclR5cGUoKSAmJiBoYXNTdWJzY3JpcHRpb25UeXBl
KCkpeyB4LmZvcm0uc3VibWl0KCk7fQp9CmZ1bmN0aW9uIHN1Ym1pdElmVHlwZXMo
KXsKICAgIGlmIChoYXNTdWJjcmliZXJUeXBlKCkgJiYgaGFzU3Vic2NyaXB0aW9u
VHlwZSgpKSAkKCJlY29tbWVyY2VGb3JtIikuc3VibWl0KCk7Cn0KZnVuY3Rpb24g
c3VibWl0SWZTdWJzY3JpYmVyKCl7CiAgICBpZiAoaGFzU3ViY3JpYmVyVHlwZSgp
KSAkKCJlY29tbWVyY2VGb3JtIikuc3VibWl0KCk7Cn0KZnVuY3Rpb24gc3VibWl0
SWZTdWJzY3JpcHRpb25UeXBlKCl7CiAgICBpZiAoaGFzU3Vic2NyaXB0aW9uVHlw
ZSgpKSAkKCJlY29tbWVyY2VGb3JtIikuc3VibWl0KCk7Cn0KZnVuY3Rpb24gaGFz
U3ViY3JpYmVyVHlwZSgpewogICAgcmV0dXJuIGlzQ2hlY2tlZCgkKCJpbmRpdmlk
dWFsIikpIHx8IGlzQ2hlY2tlZCgkKCJpbnN0aXR1dGlvbiIpKTsKfQpmdW5jdGlv
biBoYXNTdWJzY3JpcHRpb25UeXBlKCl7CiAgICByZXR1cm4gJCgiZWxlY3Ryb25p
YyIpLmNoZWNrZWQgfHwgJCgicHJpbnQiKS5jaGVja2VkIHx8ICQoImNvbWJvIiku
Y2hlY2tlZDsKfQovKiogdG8gcGxlYXNlIElFNiBmb3IgaGlkZGVuIGlucHV0IGVs
bGVtZW50cyoqLwpmdW5jdGlvbiBpc0NoZWNrZWQoeSl7CiAgICByZXR1cm4geSAm
JiAoeS50eXBlID09ICJoaWRkZW4iIHx8IHkuY2hlY2tlZCkKfQovL2VuZCBvZiBl
Y29tbTIK
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=script.js
Content-Type: application/x-javascript; charset=UTF-8; name=script.js
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/script.js
Content-Transfer-Encoding: Base64
LyoqCWZ1bmN0aW9uIHRvIHJlc3RydWN0IHNlYXJjaCAqLw0KZnVuY3Rpb24gc2Vh
cmNoUmVzdHJpY3QoYUZvcm0sIGFGaWVsZCwgYVZhbHVlLCByZXBsYWNlKQ0Kew0K
ICAgIGlmIChyZXBsYWNlKSB7DQogICAgICAgIHJlbW92ZVJlc3RyaWN0aW9uc09m
SW5wdXQoYUZvcm0sIGFGaWVsZCk7DQogICAgfQ0KICAgIHZhciBpbnB1dCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7DQogICAgaW5wdXQudHlwZSA9
ICJoaWRkZW4iOw0KICAgIGlucHV0Lm5hbWUgPSBhRmllbGQ7DQogICAgaW5wdXQu
dmFsdWUgPSBhVmFsdWU7DQogICAgYUZvcm0uc3RhcnRQYWdlLnZhbHVlID0gIiI7
DQogICAgYUZvcm0gPSAkKGFGb3JtKTsNCiAgICBhRm9ybS5hcHBlbmRDaGlsZChp
bnB1dCk7DQogICAgYUZvcm0uc3VibWl0KCk7DQp9DQoNCmZ1bmN0aW9uIHJlbW92
ZUFsbFJlc3RyaWN0aW9ucyhhRm9ybSkNCnsNCiAgICBmb3IgKGkgPSAxOyBpIDwg
YXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJlbW92ZVJlc3RyaWN0
aW9uc09mSW5wdXQoYUZvcm0sIGFyZ3VtZW50c1tpXSk7DQogICAgfQ0KICAgIGFG
b3JtLnN1Ym1pdCgpOw0KfQ0KDQpmdW5jdGlvbiByZW1vdmVSZXN0cmljdGlvbnNP
ZklucHV0KGFGb3JtLCBhRmllbGQpIHsNCiAgICB2YXIgaW5wdXQgPSBhRm9ybVth
RmllbGRdOw0KICAgIGlmICh0eXBlb2YgaW5wdXQgPT0gJ3VuZGVmaW5lZCcgfHwg
aW5wdXQgPT0gbnVsbCkgew0KICAgICAgICByZXR1cm4gMDsNCiAgICB9DQogICAg
aWYgKHR5cGVvZiBpbnB1dC5sZW5ndGggIT0gJ3VuZGVmaW5lZCcpIHsNCiAgICAg
ICAgdmFyIGk7DQogICAgICAgIGZvciAoaSA9IDA7IGkgPCBpbnB1dC5sZW5ndGg7
IGkrKykgew0KICAgICAgICAgICAgaW5wdXRbaV0udmFsdWUgPSAnJzsNCiAgICAg
ICAgfQ0KICAgICAgICByZXR1cm4gaW5wdXQubGVuZ3RoOw0KICAgIH0gZWxzZSB7
DQogICAgICAgIGlucHV0LnZhbHVlID0gJyc7DQogICAgICAgIGlucHV0LnBhcmVu
dE5vZGUucmVtb3ZlQ2hpbGQoaW5wdXQpOw0KICAgICAgICByZXR1cm4gMTsNCiAg
ICB9DQp9DQoNCmZ1bmN0aW9uIHJlbW92ZVJlc3RyaWN0KGFGb3JtLCBhRmllbGQs
IGFWYWx1ZSkNCnsNCiAgICB2YXIgaW5wdXQgPSBhRm9ybVthRmllbGRdOw0KICAg
IGlmICh0eXBlb2YgaW5wdXQubGVuZ3RoICE9ICd1bmRlZmluZWQnKSB7DQogICAg
ICAgIHZhciBpOw0KICAgICAgICBmb3IgKGkgPSAwOyBpIDwgaW5wdXQubGVuZ3Ro
OyBpKyspIHsNCiAgICAgICAgICAgIGlmIChpbnB1dFtpXS52YWx1ZSA9PSBhVmFs
dWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dFtpXS52YWx1ZSA9ICcnOw0KICAg
ICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfSBlbHNlIGlmIChpbnB1dC52YWx1
ZSA9PSBhVmFsdWUpIHsNCiAgICAgICAgaW5wdXQudmFsdWUgPSAnJzsNCiAgICB9
DQogICAgYUZvcm0uc3VibWl0KCk7DQp9DQoNCmZ1bmN0aW9uIHNldElucHV0KGFG
b3JtLCBhRmllbGQsIGFWYWx1ZSkNCnsNCiAgICB2YXIgaW5wdXQgPSBhRm9ybVth
RmllbGRdOw0KICAgIGlmICh0eXBlb2YgaW5wdXQgPT0gJ3VuZGVmaW5lZCcgfHwg
aW5wdXQgPT0gbnVsbCkgew0KICAgICAgICBpbnB1dCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImlucHV0Iik7DQogICAgICAgIGlucHV0LnR5cGUgPSAiaGlkZGVu
IjsNCiAgICAgICAgaW5wdXQubmFtZSA9IGFGaWVsZDsNCiAgICAgICAgYUZvcm0g
PSAkKGFGb3JtKTsNCiAgICAgICAgYUZvcm0uYXBwZW5kQ2hpbGQoaW5wdXQpOw0K
ICAgIH0NCiAgICBpZiAodHlwZW9mIGlucHV0Lmxlbmd0aCAhPSAndW5kZWZpbmVk
Jykgew0KICAgICAgICB2YXIgaTsNCiAgICAgICAgZm9yIChpID0gMDsgaSA8IGlu
cHV0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBpbnB1dFtpXS52YWx1ZSA9
IGFWYWx1ZTsNCiAgICAgICAgfQ0KICAgIH0gZWxzZSB7DQogICAgICAgIGlucHV0
LnZhbHVlID0gYVZhbHVlOw0KICAgIH0NCn0NCg0KZnVuY3Rpb24gc2V0SW5wdXRB
bmRTdWJtaXQoYUZvcm0sIGFGaWVsZCwgYVZhbHVlKQ0Kew0KICAgIHNldElucHV0
KGFGb3JtLCBhRmllbGQsIGFWYWx1ZSk7DQogICAgYUZvcm0uc3RhcnRQYWdlLnZh
bHVlID0gIiI7DQogICAgYUZvcm0uc3VibWl0KCk7DQp9DQoNCmZ1bmN0aW9uIHVw
ZGF0ZUNoZWNrQm94ZXMoY29udHJvbGxpbmdJbnB1dCwgaW5wdXROYW1lKSB7DQog
ICAgdmFyIGlucHV0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKGlucHV0
TmFtZSk7DQogICAgZm9yIChpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykg
ew0KICAgICAgICBpbnB1dHNbaV0uY2hlY2tlZCA9IGNvbnRyb2xsaW5nSW5wdXQu
Y2hlY2tlZDsNCiAgICB9DQp9DQoNCmZ1bmN0aW9uIHN1Ym1pdFNhdmVTZWFyY2go
Zm9ybSkgew0KICAgIGZvcm0gPSAkKGZvcm0pOw0KICAgIHZhciBtYXAgPSBmb3Jt
LnNlcmlhbGl6ZSh0cnVlKTsNCiAgICBtYXBbJ2FqYXgnXSA9ICd0cnVlJzsNCiAg
ICBtYXBbJ3BlcmZvcm0nXSA9ICd0cnVlJzsNCiAgICBuZXcgQWpheC5SZXF1ZXN0
KCcvYWN0aW9uL2RvU2F2ZVNlYXJjaCcsIHsNCiAgICAgICAgbWV0aG9kOiAnZ2V0
JywNCiAgICAgICAgcGFyYW1ldGVyczogbWFwLA0KICAgICAgICBvbkZhaWx1cmU6
IGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgYWxlcnQoIlVuYWJsZSB0byBzYXZl
IHNlYXJjaC4iKQ0KICAgICAgICB9LA0KICAgICAgICBvblN1Y2Nlc3M6IGZ1bmN0
aW9uKHRyYW5zcG9ydCkgew0KICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHRyYW5z
cG9ydC5yZXNwb25zZVRleHQ7DQogICAgICAgICAgICB2YXIgcmVkaXJlY3RQcmVm
aXggPSAicmVkaXJlY3RUbzoiOw0KICAgICAgICAgICAgdmFyIGkgPSByZXN1bHQu
aW5kZXhPZihyZWRpcmVjdFByZWZpeCk7DQogICAgICAgICAgICBpZiAocmVzdWx0
ID09ICdvaycpIHsNCiAgICAgICAgICAgICAgICBzYXZlU2VhcmNoKCdmaW5hbGl6
ZScpOw0KICAgICAgICAgICAgfSBlbHNlIGlmIChpID49IDApIHsNCiAgICAgICAg
ICAgICAgICB2YXIgcmVkaXJlY3RUbyA9IHJlc3VsdC5zdWJzdHJpbmcocmVkaXJl
Y3RQcmVmaXgubGVuZ3RoKTsNCiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRp
b24gPSByZWRpcmVjdFRvOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAg
ICAgICAgICBhbGVydCgiVW5hYmxlIHRvIHNhdmUgc2VhcmNoLiBSZWFzb246ICIg
KyByZXN1bHQpDQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgIH0NCiAg
ICApOw0KfQ0KDQpmdW5jdGlvbiBmaXhBcnRpY2xlTGlua3Mob25QYWdlVGl0bGVQ
YXR0ZXJuKSB7DQogICAgJCQoIiNsaW5rcyBsaVtjbGFzc349J29uUGFnZSddIiku
ZWFjaChmdW5jdGlvbihlbGVtKSB7DQogICAgICAgICQoZWxlbSkucmVtb3ZlQ2xh
c3NOYW1lKCdvblBhZ2UnKTsNCiAgICB9KTsNCiAgICAkJCgiI2xpbmtzIGxpIGFb
dGl0bGV+PSciK29uUGFnZVRpdGxlUGF0dGVybisiJ10iKS5lYWNoKGZ1bmN0aW9u
KGVsZW0pIHsNCi8vICAgICAgICBhbGVydCgiZmluZCBzdXBwbCBhbmNob3IuIHBh
cmVudDogIiArICQoZWxlbSkucGFyZW50Tm9kZSk7DQogICAgICAgICQoJChlbGVt
KS5wYXJlbnROb2RlKS5hZGRDbGFzc05hbWUoJ29uUGFnZScpOw0KICAgIH0pOw0K
DQp9DQoNCmZ1bmN0aW9uIHNlYXJjaE5leHRSZXN1bHRQYWdlSW5TdWJqZWN0KGFG
b3JtLCBhT2Zmc2V0LCBhU3ViamVjdCkNCnsNCgl2YXIgeCA9IGV2YWwoYUZvcm0u
c3RhcnRQYWdlLnZhbHVlKSArIGFPZmZzZXQ7DQoJYUZvcm0uc3RhcnRQYWdlLnZh
bHVlID0geDsNCglhRm9ybS5zdWJtaXQoKTsNCn0NCg0KZnVuY3Rpb24gc2VhcmNo
UmVzdWx0UGFnZShhRm9ybSwgcGFnZSwgYVN1YmplY3QpDQp7DQogICAgYUZvcm0u
c3RhcnRQYWdlLnZhbHVlID0gcGFnZTsNCglhRm9ybS5zdWJtaXQoKTsNCn0NCg==
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=prototype.js
Content-Type: application/x-javascript; charset=UTF-8; name=prototype.js
Content-Location: http://pubs.acs.org/templates/jsp/js/prototype.js
Content-Transfer-Encoding: Base64
LyogIFByb3RvdHlwZSBKYXZhU2NyaXB0IGZyYW1ld29yaywgdmVyc2lvbiAxLjYu
MC4zCiAqICAoYykgMjAwNS0yMDA4IFNhbSBTdGVwaGVuc29uCiAqCiAqICBQcm90
b3R5cGUgaXMgZnJlZWx5IGRpc3RyaWJ1dGFibGUgdW5kZXIgdGhlIHRlcm1zIG9m
IGFuIE1JVC1zdHlsZSBsaWNlbnNlLgogKiAgRm9yIGRldGFpbHMsIHNlZSB0aGUg
UHJvdG90eXBlIHdlYiBzaXRlOiBodHRwOi8vd3d3LnByb3RvdHlwZWpzLm9yZy8K
ICoKICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgp2YXIgUHJvdG90eXBl
ID0gewogIFZlcnNpb246ICcxLjYuMC4zJywKCiAgQnJvd3NlcjogewogICAgSUU6
ICAgICAhISh3aW5kb3cuYXR0YWNoRXZlbnQgJiYgbmF2aWdhdG9yLnVzZXJBZ2Vu
dC5pbmRleE9mKCdPcGVyYScpID09PSAtMSksCiAgICBPcGVyYTogIG5hdmlnYXRv
ci51c2VyQWdlbnQuaW5kZXhPZignT3BlcmEnKSA+IC0xLAogICAgV2ViS2l0OiBu
YXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ0FwcGxlV2ViS2l0LycpID4gLTEs
CiAgICBHZWNrbzogIG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignR2Vja28n
KSA+IC0xICYmCiAgICAgIG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignS0hU
TUwnKSA9PT0gLTEsCiAgICBNb2JpbGVTYWZhcmk6ICEhbmF2aWdhdG9yLnVzZXJB
Z2VudC5tYXRjaCgvQXBwbGUuKk1vYmlsZS4qU2FmYXJpLykKICB9LAoKICBCcm93
c2VyRmVhdHVyZXM6IHsKICAgIFhQYXRoOiAhIWRvY3VtZW50LmV2YWx1YXRlLAog
ICAgU2VsZWN0b3JzQVBJOiAhIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IsCiAgICBF
bGVtZW50RXh0ZW5zaW9uczogISF3aW5kb3cuSFRNTEVsZW1lbnQsCiAgICBTcGVj
aWZpY0VsZW1lbnRFeHRlbnNpb25zOgogICAgICBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKVsnX19wcm90b19fJ10gJiYKICAgICAgZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2JylbJ19fcHJvdG9fXyddICE9PQogICAgICAgIGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0nKVsnX19wcm90b19fJ10KICB9LAoKICBTY3Jp
cHRGcmFnbWVudDogJzxzY3JpcHRbXj5dKj4oW1xcU1xcc10qPyk8XC9zY3JpcHQ+
JywKICBKU09ORmlsdGVyOiAvXlwvXCotc2VjdXJlLShbXHNcU10qKVwqXC9ccyok
LywKCiAgZW1wdHlGdW5jdGlvbjogZnVuY3Rpb24oKSB7IH0sCiAgSzogZnVuY3Rp
b24oeCkgeyByZXR1cm4geCB9Cn07CgppZiAoUHJvdG90eXBlLkJyb3dzZXIuTW9i
aWxlU2FmYXJpKQogIFByb3RvdHlwZS5Ccm93c2VyRmVhdHVyZXMuU3BlY2lmaWNF
bGVtZW50RXh0ZW5zaW9ucyA9IGZhbHNlOwoKCi8qIEJhc2VkIG9uIEFsZXggQXJu
ZWxsJ3MgaW5oZXJpdGFuY2UgaW1wbGVtZW50YXRpb24uICovCnZhciBDbGFzcyA9
IHsKICBjcmVhdGU6IGZ1bmN0aW9uKCkgewogICAgdmFyIHBhcmVudCA9IG51bGws
IHByb3BlcnRpZXMgPSAkQShhcmd1bWVudHMpOwogICAgaWYgKE9iamVjdC5pc0Z1
bmN0aW9uKHByb3BlcnRpZXNbMF0pKQogICAgICBwYXJlbnQgPSBwcm9wZXJ0aWVz
LnNoaWZ0KCk7CgogICAgZnVuY3Rpb24ga2xhc3MoKSB7CiAgICAgIHRoaXMuaW5p
dGlhbGl6ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgfQoKICAgIE9iamVj
dC5leHRlbmQoa2xhc3MsIENsYXNzLk1ldGhvZHMpOwogICAga2xhc3Muc3VwZXJj
bGFzcyA9IHBhcmVudDsKICAgIGtsYXNzLnN1YmNsYXNzZXMgPSBbXTsKCiAgICBp
ZiAocGFyZW50KSB7CiAgICAgIHZhciBzdWJjbGFzcyA9IGZ1bmN0aW9uKCkgeyB9
OwogICAgICBzdWJjbGFzcy5wcm90b3R5cGUgPSBwYXJlbnQucHJvdG90eXBlOwog
ICAgICBrbGFzcy5wcm90b3R5cGUgPSBuZXcgc3ViY2xhc3M7CiAgICAgIHBhcmVu
dC5zdWJjbGFzc2VzLnB1c2goa2xhc3MpOwogICAgfQoKICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgcHJvcGVydGllcy5sZW5ndGg7IGkrKykKICAgICAga2xhc3MuYWRk
TWV0aG9kcyhwcm9wZXJ0aWVzW2ldKTsKCiAgICBpZiAoIWtsYXNzLnByb3RvdHlw
ZS5pbml0aWFsaXplKQogICAgICBrbGFzcy5wcm90b3R5cGUuaW5pdGlhbGl6ZSA9
IFByb3RvdHlwZS5lbXB0eUZ1bmN0aW9uOwoKICAgIGtsYXNzLnByb3RvdHlwZS5j
b25zdHJ1Y3RvciA9IGtsYXNzOwoKICAgIHJldHVybiBrbGFzczsKICB9Cn07CgpD
bGFzcy5NZXRob2RzID0gewogIGFkZE1ldGhvZHM6IGZ1bmN0aW9uKHNvdXJjZSkg
ewogICAgdmFyIGFuY2VzdG9yICAgPSB0aGlzLnN1cGVyY2xhc3MgJiYgdGhpcy5z
dXBlcmNsYXNzLnByb3RvdHlwZTsKICAgIHZhciBwcm9wZXJ0aWVzID0gT2JqZWN0
LmtleXMoc291cmNlKTsKCiAgICBpZiAoIU9iamVjdC5rZXlzKHsgdG9TdHJpbmc6
IHRydWUgfSkubGVuZ3RoKQogICAgICBwcm9wZXJ0aWVzLnB1c2goInRvU3RyaW5n
IiwgInZhbHVlT2YiKTsKCiAgICBmb3IgKHZhciBpID0gMCwgbGVuZ3RoID0gcHJv
cGVydGllcy5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKykgewogICAgICB2YXIgcHJv
cGVydHkgPSBwcm9wZXJ0aWVzW2ldLCB2YWx1ZSA9IHNvdXJjZVtwcm9wZXJ0eV07
CiAgICAgIGlmIChhbmNlc3RvciAmJiBPYmplY3QuaXNGdW5jdGlvbih2YWx1ZSkg
JiYKICAgICAgICAgIHZhbHVlLmFyZ3VtZW50TmFtZXMoKS5maXJzdCgpID09ICIk
c3VwZXIiKSB7CiAgICAgICAgdmFyIG1ldGhvZCA9IHZhbHVlOwogICAgICAgIHZh
bHVlID0gKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgIHJldHVybiBmdW5jdGlvbigp
IHsgcmV0dXJuIGFuY2VzdG9yW21dLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfTsK
ICAgICAgICB9KShwcm9wZXJ0eSkud3JhcChtZXRob2QpOwoKICAgICAgICB2YWx1
ZS52YWx1ZU9mID0gbWV0aG9kLnZhbHVlT2YuYmluZChtZXRob2QpOwogICAgICAg
IHZhbHVlLnRvU3RyaW5nID0gbWV0aG9kLnRvU3RyaW5nLmJpbmQobWV0aG9kKTsK
ICAgICAgfQogICAgICB0aGlzLnByb3RvdHlwZVtwcm9wZXJ0eV0gPSB2YWx1ZTsK
ICAgIH0KCiAgICByZXR1cm4gdGhpczsKICB9Cn07Cgp2YXIgQWJzdHJhY3QgPSB7
IH07CgpPYmplY3QuZXh0ZW5kID0gZnVuY3Rpb24oZGVzdGluYXRpb24sIHNvdXJj
ZSkgewogIGZvciAodmFyIHByb3BlcnR5IGluIHNvdXJjZSkKICAgIGRlc3RpbmF0
aW9uW3Byb3BlcnR5XSA9IHNvdXJjZVtwcm9wZXJ0eV07CiAgcmV0dXJuIGRlc3Rp
bmF0aW9uOwp9OwoKT2JqZWN0LmV4dGVuZChPYmplY3QsIHsKICBpbnNwZWN0OiBm
dW5jdGlvbihvYmplY3QpIHsKICAgIHRyeSB7CiAgICAgIGlmIChPYmplY3QuaXNV
bmRlZmluZWQob2JqZWN0KSkgcmV0dXJuICd1bmRlZmluZWQnOwogICAgICBpZiAo
b2JqZWN0ID09PSBudWxsKSByZXR1cm4gJ251bGwnOwogICAgICByZXR1cm4gb2Jq
ZWN0Lmluc3BlY3QgPyBvYmplY3QuaW5zcGVjdCgpIDogU3RyaW5nKG9iamVjdCk7
CiAgICB9IGNhdGNoIChlKSB7CiAgICAgIGlmIChlIGluc3RhbmNlb2YgUmFuZ2VF
cnJvcikgcmV0dXJuICcuLi4nOwogICAgICB0aHJvdyBlOwogICAgfQogIH0sCgog
IHRvSlNPTjogZnVuY3Rpb24ob2JqZWN0KSB7CiAgICB2YXIgdHlwZSA9IHR5cGVv
ZiBvYmplY3Q7CiAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgY2FzZSAndW5kZWZp
bmVkJzoKICAgICAgY2FzZSAnZnVuY3Rpb24nOgogICAgICBjYXNlICd1bmtub3du
JzogcmV0dXJuOwogICAgICBjYXNlICdib29sZWFuJzogcmV0dXJuIG9iamVjdC50
b1N0cmluZygpOwogICAgfQoKICAgIGlmIChvYmplY3QgPT09IG51bGwpIHJldHVy
biAnbnVsbCc7CiAgICBpZiAob2JqZWN0LnRvSlNPTikgcmV0dXJuIG9iamVjdC50
b0pTT04oKTsKICAgIGlmIChPYmplY3QuaXNFbGVtZW50KG9iamVjdCkpIHJldHVy
bjsKCiAgICB2YXIgcmVzdWx0cyA9IFtdOwogICAgZm9yICh2YXIgcHJvcGVydHkg
aW4gb2JqZWN0KSB7CiAgICAgIHZhciB2YWx1ZSA9IE9iamVjdC50b0pTT04ob2Jq
ZWN0W3Byb3BlcnR5XSk7CiAgICAgIGlmICghT2JqZWN0LmlzVW5kZWZpbmVkKHZh
bHVlKSkKICAgICAgICByZXN1bHRzLnB1c2gocHJvcGVydHkudG9KU09OKCkgKyAn
OiAnICsgdmFsdWUpOwogICAgfQoKICAgIHJldHVybiAneycgKyByZXN1bHRzLmpv
aW4oJywgJykgKyAnfSc7CiAgfSwKCiAgdG9RdWVyeVN0cmluZzogZnVuY3Rpb24o
b2JqZWN0KSB7CiAgICByZXR1cm4gJEgob2JqZWN0KS50b1F1ZXJ5U3RyaW5nKCk7
CiAgfSwKCiAgdG9IVE1MOiBmdW5jdGlvbihvYmplY3QpIHsKICAgIHJldHVybiBv
YmplY3QgJiYgb2JqZWN0LnRvSFRNTCA/IG9iamVjdC50b0hUTUwoKSA6IFN0cmlu
Zy5pbnRlcnByZXQob2JqZWN0KTsKICB9LAoKICBrZXlzOiBmdW5jdGlvbihvYmpl
Y3QpIHsKICAgIHZhciBrZXlzID0gW107CiAgICBmb3IgKHZhciBwcm9wZXJ0eSBp
biBvYmplY3QpCiAgICAgIGtleXMucHVzaChwcm9wZXJ0eSk7CiAgICByZXR1cm4g
a2V5czsKICB9LAoKICB2YWx1ZXM6IGZ1bmN0aW9uKG9iamVjdCkgewogICAgdmFy
IHZhbHVlcyA9IFtdOwogICAgZm9yICh2YXIgcHJvcGVydHkgaW4gb2JqZWN0KQog
ICAgICB2YWx1ZXMucHVzaChvYmplY3RbcHJvcGVydHldKTsKICAgIHJldHVybiB2
YWx1ZXM7CiAgfSwKCiAgY2xvbmU6IGZ1bmN0aW9uKG9iamVjdCkgewogICAgcmV0
dXJuIE9iamVjdC5leHRlbmQoeyB9LCBvYmplY3QpOwogIH0sCgogIGlzRWxlbWVu
dDogZnVuY3Rpb24ob2JqZWN0KSB7CiAgICByZXR1cm4gISEob2JqZWN0ICYmIG9i
amVjdC5ub2RlVHlwZSA9PSAxKTsKICB9LAoKICBpc0FycmF5OiBmdW5jdGlvbihv
YmplY3QpIHsKICAgIHJldHVybiBvYmplY3QgIT0gbnVsbCAmJiB0eXBlb2Ygb2Jq
ZWN0ID09ICJvYmplY3QiICYmCiAgICAgICdzcGxpY2UnIGluIG9iamVjdCAmJiAn
am9pbicgaW4gb2JqZWN0OwogIH0sCgogIGlzSGFzaDogZnVuY3Rpb24ob2JqZWN0
KSB7CiAgICByZXR1cm4gb2JqZWN0IGluc3RhbmNlb2YgSGFzaDsKICB9LAoKICBp
c0Z1bmN0aW9uOiBmdW5jdGlvbihvYmplY3QpIHsKICAgIHJldHVybiB0eXBlb2Yg
b2JqZWN0ID09ICJmdW5jdGlvbiI7CiAgfSwKCiAgaXNTdHJpbmc6IGZ1bmN0aW9u
KG9iamVjdCkgewogICAgcmV0dXJuIHR5cGVvZiBvYmplY3QgPT0gInN0cmluZyI7
CiAgfSwKCiAgaXNOdW1iZXI6IGZ1bmN0aW9uKG9iamVjdCkgewogICAgcmV0dXJu
IHR5cGVvZiBvYmplY3QgPT0gIm51bWJlciI7CiAgfSwKCiAgaXNVbmRlZmluZWQ6
IGZ1bmN0aW9uKG9iamVjdCkgewogICAgcmV0dXJuIHR5cGVvZiBvYmplY3QgPT0g
InVuZGVmaW5lZCI7CiAgfQp9KTsKCk9iamVjdC5leHRlbmQoRnVuY3Rpb24ucHJv
dG90eXBlLCB7CiAgYXJndW1lbnROYW1lczogZnVuY3Rpb24oKSB7CiAgICB2YXIg
bmFtZXMgPSB0aGlzLnRvU3RyaW5nKCkubWF0Y2goL15bXHNcKF0qZnVuY3Rpb25b
XihdKlwoKFteXCldKilcKS8pWzFdCiAgICAgIC5yZXBsYWNlKC9ccysvZywgJycp
LnNwbGl0KCcsJyk7CiAgICByZXR1cm4gbmFtZXMubGVuZ3RoID09IDEgJiYgIW5h
bWVzWzBdID8gW10gOiBuYW1lczsKICB9LAoKICBiaW5kOiBmdW5jdGlvbigpIHsK
ICAgIGlmIChhcmd1bWVudHMubGVuZ3RoIDwgMiAmJiBPYmplY3QuaXNVbmRlZmlu
ZWQoYXJndW1lbnRzWzBdKSkgcmV0dXJuIHRoaXM7CiAgICB2YXIgX19tZXRob2Qg
PSB0aGlzLCBhcmdzID0gJEEoYXJndW1lbnRzKSwgb2JqZWN0ID0gYXJncy5zaGlm
dCgpOwogICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gX19tZXRo
b2QuYXBwbHkob2JqZWN0LCBhcmdzLmNvbmNhdCgkQShhcmd1bWVudHMpKSk7CiAg
ICB9CiAgfSwKCiAgYmluZEFzRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24oKSB7CiAg
ICB2YXIgX19tZXRob2QgPSB0aGlzLCBhcmdzID0gJEEoYXJndW1lbnRzKSwgb2Jq
ZWN0ID0gYXJncy5zaGlmdCgpOwogICAgcmV0dXJuIGZ1bmN0aW9uKGV2ZW50KSB7
CiAgICAgIHJldHVybiBfX21ldGhvZC5hcHBseShvYmplY3QsIFtldmVudCB8fCB3
aW5kb3cuZXZlbnRdLmNvbmNhdChhcmdzKSk7CiAgICB9CiAgfSwKCiAgY3Vycnk6
IGZ1bmN0aW9uKCkgewogICAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSByZXR1cm4g
dGhpczsKICAgIHZhciBfX21ldGhvZCA9IHRoaXMsIGFyZ3MgPSAkQShhcmd1bWVu
dHMpOwogICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gX19tZXRo
b2QuYXBwbHkodGhpcywgYXJncy5jb25jYXQoJEEoYXJndW1lbnRzKSkpOwogICAg
fQogIH0sCgogIGRlbGF5OiBmdW5jdGlvbigpIHsKICAgIHZhciBfX21ldGhvZCA9
IHRoaXMsIGFyZ3MgPSAkQShhcmd1bWVudHMpLCB0aW1lb3V0ID0gYXJncy5zaGlm
dCgpICogMTAwMDsKICAgIHJldHVybiB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlv
bigpIHsKICAgICAgcmV0dXJuIF9fbWV0aG9kLmFwcGx5KF9fbWV0aG9kLCBhcmdz
KTsKICAgIH0sIHRpbWVvdXQpOwogIH0sCgogIGRlZmVyOiBmdW5jdGlvbigpIHsK
ICAgIHZhciBhcmdzID0gWzAuMDFdLmNvbmNhdCgkQShhcmd1bWVudHMpKTsKICAg
IHJldHVybiB0aGlzLmRlbGF5LmFwcGx5KHRoaXMsIGFyZ3MpOwogIH0sCgogIHdy
YXA6IGZ1bmN0aW9uKHdyYXBwZXIpIHsKICAgIHZhciBfX21ldGhvZCA9IHRoaXM7
CiAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB3cmFwcGVyLmFw
cGx5KHRoaXMsIFtfX21ldGhvZC5iaW5kKHRoaXMpXS5jb25jYXQoJEEoYXJndW1l
bnRzKSkpOwogICAgfQogIH0sCgogIG1ldGhvZGl6ZTogZnVuY3Rpb24oKSB7CiAg
ICBpZiAodGhpcy5fbWV0aG9kaXplZCkgcmV0dXJuIHRoaXMuX21ldGhvZGl6ZWQ7
CiAgICB2YXIgX19tZXRob2QgPSB0aGlzOwogICAgcmV0dXJuIHRoaXMuX21ldGhv
ZGl6ZWQgPSBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIF9fbWV0aG9kLmFwcGx5
KG51bGwsIFt0aGlzXS5jb25jYXQoJEEoYXJndW1lbnRzKSkpOwogICAgfTsKICB9
Cn0pOwoKRGF0ZS5wcm90b3R5cGUudG9KU09OID0gZnVuY3Rpb24oKSB7CiAgcmV0
dXJuICciJyArIHRoaXMuZ2V0VVRDRnVsbFllYXIoKSArICctJyArCiAgICAodGhp
cy5nZXRVVENNb250aCgpICsgMSkudG9QYWRkZWRTdHJpbmcoMikgKyAnLScgKwog
ICAgdGhpcy5nZXRVVENEYXRlKCkudG9QYWRkZWRTdHJpbmcoMikgKyAnVCcgKwog
ICAgdGhpcy5nZXRVVENIb3VycygpLnRvUGFkZGVkU3RyaW5nKDIpICsgJzonICsK
ICAgIHRoaXMuZ2V0VVRDTWludXRlcygpLnRvUGFkZGVkU3RyaW5nKDIpICsgJzon
ICsKICAgIHRoaXMuZ2V0VVRDU2Vjb25kcygpLnRvUGFkZGVkU3RyaW5nKDIpICsg
J1oiJzsKfTsKCnZhciBUcnkgPSB7CiAgdGhlc2U6IGZ1bmN0aW9uKCkgewogICAg
dmFyIHJldHVyblZhbHVlOwoKICAgIGZvciAodmFyIGkgPSAwLCBsZW5ndGggPSBh
cmd1bWVudHMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIHsKICAgICAgdmFyIGxh
bWJkYSA9IGFyZ3VtZW50c1tpXTsKICAgICAgdHJ5IHsKICAgICAgICByZXR1cm5W
YWx1ZSA9IGxhbWJkYSgpOwogICAgICAgIGJyZWFrOwogICAgICB9IGNhdGNoIChl
KSB7IH0KICAgIH0KCiAgICByZXR1cm4gcmV0dXJuVmFsdWU7CiAgfQp9OwoKUmVn
RXhwLnByb3RvdHlwZS5tYXRjaCA9IFJlZ0V4cC5wcm90b3R5cGUudGVzdDsKClJl
Z0V4cC5lc2NhcGUgPSBmdW5jdGlvbihzdHIpIHsKICByZXR1cm4gU3RyaW5nKHN0
cikucmVwbGFjZSgvKFsuKis/Xj0hOiR7fSgpfFtcXVwvXFxdKS9nLCAnXFwkMScp
Owp9OwoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgp2YXIgUGVyaW9k
aWNhbEV4ZWN1dGVyID0gQ2xhc3MuY3JlYXRlKHsKICBpbml0aWFsaXplOiBmdW5j
dGlvbihjYWxsYmFjaywgZnJlcXVlbmN5KSB7CiAgICB0aGlzLmNhbGxiYWNrID0g
Y2FsbGJhY2s7CiAgICB0aGlzLmZyZXF1ZW5jeSA9IGZyZXF1ZW5jeTsKICAgIHRo
aXMuY3VycmVudGx5RXhlY3V0aW5nID0gZmFsc2U7CgogICAgdGhpcy5yZWdpc3Rl
ckNhbGxiYWNrKCk7CiAgfSwKCiAgcmVnaXN0ZXJDYWxsYmFjazogZnVuY3Rpb24o
KSB7CiAgICB0aGlzLnRpbWVyID0gc2V0SW50ZXJ2YWwodGhpcy5vblRpbWVyRXZl
bnQuYmluZCh0aGlzKSwgdGhpcy5mcmVxdWVuY3kgKiAxMDAwKTsKICB9LAoKICBl
eGVjdXRlOiBmdW5jdGlvbigpIHsKICAgIHRoaXMuY2FsbGJhY2sodGhpcyk7CiAg
fSwKCiAgc3RvcDogZnVuY3Rpb24oKSB7CiAgICBpZiAoIXRoaXMudGltZXIpIHJl
dHVybjsKICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lcik7CiAgICB0aGlzLnRp
bWVyID0gbnVsbDsKICB9LAoKICBvblRpbWVyRXZlbnQ6IGZ1bmN0aW9uKCkgewog
ICAgaWYgKCF0aGlzLmN1cnJlbnRseUV4ZWN1dGluZykgewogICAgICB0cnkgewog
ICAgICAgIHRoaXMuY3VycmVudGx5RXhlY3V0aW5nID0gdHJ1ZTsKICAgICAgICB0
aGlzLmV4ZWN1dGUoKTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICB0aGlzLmN1
cnJlbnRseUV4ZWN1dGluZyA9IGZhbHNlOwogICAgICB9CiAgICB9CiAgfQp9KTsK
T2JqZWN0LmV4dGVuZChTdHJpbmcsIHsKICBpbnRlcnByZXQ6IGZ1bmN0aW9uKHZh
bHVlKSB7CiAgICByZXR1cm4gdmFsdWUgPT0gbnVsbCA/ICcnIDogU3RyaW5nKHZh
bHVlKTsKICB9LAogIHNwZWNpYWxDaGFyOiB7CiAgICAnXGInOiAnXFxiJywKICAg
ICdcdCc6ICdcXHQnLAogICAgJ1xuJzogJ1xcbicsCiAgICAnXGYnOiAnXFxmJywK
ICAgICdccic6ICdcXHInLAogICAgJ1xcJzogJ1xcXFwnCiAgfQp9KTsKCk9iamVj
dC5leHRlbmQoU3RyaW5nLnByb3RvdHlwZSwgewogIGdzdWI6IGZ1bmN0aW9uKHBh
dHRlcm4sIHJlcGxhY2VtZW50KSB7CiAgICB2YXIgcmVzdWx0ID0gJycsIHNvdXJj
ZSA9IHRoaXMsIG1hdGNoOwogICAgcmVwbGFjZW1lbnQgPSBhcmd1bWVudHMuY2Fs
bGVlLnByZXBhcmVSZXBsYWNlbWVudChyZXBsYWNlbWVudCk7CgogICAgd2hpbGUg
KHNvdXJjZS5sZW5ndGggPiAwKSB7CiAgICAgIGlmIChtYXRjaCA9IHNvdXJjZS5t
YXRjaChwYXR0ZXJuKSkgewogICAgICAgIHJlc3VsdCArPSBzb3VyY2Uuc2xpY2Uo
MCwgbWF0Y2guaW5kZXgpOwogICAgICAgIHJlc3VsdCArPSBTdHJpbmcuaW50ZXJw
cmV0KHJlcGxhY2VtZW50KG1hdGNoKSk7CiAgICAgICAgc291cmNlICA9IHNvdXJj
ZS5zbGljZShtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aCk7CiAgICAgIH0g
ZWxzZSB7CiAgICAgICAgcmVzdWx0ICs9IHNvdXJjZSwgc291cmNlID0gJyc7CiAg
ICAgIH0KICAgIH0KICAgIHJldHVybiByZXN1bHQ7CiAgfSwKCiAgc3ViOiBmdW5j
dGlvbihwYXR0ZXJuLCByZXBsYWNlbWVudCwgY291bnQpIHsKICAgIHJlcGxhY2Vt
ZW50ID0gdGhpcy5nc3ViLnByZXBhcmVSZXBsYWNlbWVudChyZXBsYWNlbWVudCk7
CiAgICBjb3VudCA9IE9iamVjdC5pc1VuZGVmaW5lZChjb3VudCkgPyAxIDogY291
bnQ7CgogICAgcmV0dXJuIHRoaXMuZ3N1YihwYXR0ZXJuLCBmdW5jdGlvbihtYXRj
aCkgewogICAgICBpZiAoLS1jb3VudCA8IDApIHJldHVybiBtYXRjaFswXTsKICAg
ICAgcmV0dXJuIHJlcGxhY2VtZW50KG1hdGNoKTsKICAgIH0pOwogIH0sCgogIHNj
YW46IGZ1bmN0aW9uKHBhdHRlcm4sIGl0ZXJhdG9yKSB7CiAgICB0aGlzLmdzdWIo
cGF0dGVybiwgaXRlcmF0b3IpOwogICAgcmV0dXJuIFN0cmluZyh0aGlzKTsKICB9
LAoKICB0cnVuY2F0ZTogZnVuY3Rpb24obGVuZ3RoLCB0cnVuY2F0aW9uKSB7CiAg
ICBsZW5ndGggPSBsZW5ndGggfHwgMzA7CiAgICB0cnVuY2F0aW9uID0gT2JqZWN0
LmlzVW5kZWZpbmVkKHRydW5jYXRpb24pID8gJy4uLicgOiB0cnVuY2F0aW9uOwog
ICAgcmV0dXJuIHRoaXMubGVuZ3RoID4gbGVuZ3RoID8KICAgICAgdGhpcy5zbGlj
ZSgwLCBsZW5ndGggLSB0cnVuY2F0aW9uLmxlbmd0aCkgKyB0cnVuY2F0aW9uIDog
U3RyaW5nKHRoaXMpOwogIH0sCgogIHN0cmlwOiBmdW5jdGlvbigpIHsKICAgIHJl
dHVybiB0aGlzLnJlcGxhY2UoL15ccysvLCAnJykucmVwbGFjZSgvXHMrJC8sICcn
KTsKICB9LAoKICBzdHJpcFRhZ3M6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRo
aXMucmVwbGFjZSgvPFwvP1tePl0rPi9naSwgJycpOwogIH0sCgogIHN0cmlwU2Ny
aXB0czogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhpcy5yZXBsYWNlKG5ldyBS
ZWdFeHAoUHJvdG90eXBlLlNjcmlwdEZyYWdtZW50LCAnaW1nJyksICcnKTsKICB9
LAoKICBleHRyYWN0U2NyaXB0czogZnVuY3Rpb24oKSB7CiAgICB2YXIgbWF0Y2hB
bGwgPSBuZXcgUmVnRXhwKFByb3RvdHlwZS5TY3JpcHRGcmFnbWVudCwgJ2ltZycp
OwogICAgdmFyIG1hdGNoT25lID0gbmV3IFJlZ0V4cChQcm90b3R5cGUuU2NyaXB0
RnJhZ21lbnQsICdpbScpOwogICAgcmV0dXJuICh0aGlzLm1hdGNoKG1hdGNoQWxs
KSB8fCBbXSkubWFwKGZ1bmN0aW9uKHNjcmlwdFRhZykgewogICAgICByZXR1cm4g
KHNjcmlwdFRhZy5tYXRjaChtYXRjaE9uZSkgfHwgWycnLCAnJ10pWzFdOwogICAg
fSk7CiAgfSwKCiAgZXZhbFNjcmlwdHM6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJu
IHRoaXMuZXh0cmFjdFNjcmlwdHMoKS5tYXAoZnVuY3Rpb24oc2NyaXB0KSB7IHJl
dHVybiBldmFsKHNjcmlwdCkgfSk7CiAgfSwKCiAgZXNjYXBlSFRNTDogZnVuY3Rp
b24oKSB7CiAgICB2YXIgc2VsZiA9IGFyZ3VtZW50cy5jYWxsZWU7CiAgICBzZWxm
LnRleHQuZGF0YSA9IHRoaXM7CiAgICByZXR1cm4gc2VsZi5kaXYuaW5uZXJIVE1M
OwogIH0sCgogIHVuZXNjYXBlSFRNTDogZnVuY3Rpb24oKSB7CiAgICB2YXIgZGl2
ID0gbmV3IEVsZW1lbnQoJ2RpdicpOwogICAgZGl2LmlubmVySFRNTCA9IHRoaXMu
c3RyaXBUYWdzKCk7CiAgICByZXR1cm4gZGl2LmNoaWxkTm9kZXNbMF0gPyAoZGl2
LmNoaWxkTm9kZXMubGVuZ3RoID4gMSA/CiAgICAgICRBKGRpdi5jaGlsZE5vZGVz
KS5pbmplY3QoJycsIGZ1bmN0aW9uKG1lbW8sIG5vZGUpIHsgcmV0dXJuIG1lbW8r
bm9kZS5ub2RlVmFsdWUgfSkgOgogICAgICBkaXYuY2hpbGROb2Rlc1swXS5ub2Rl
VmFsdWUpIDogJyc7CiAgfSwKCiAgdG9RdWVyeVBhcmFtczogZnVuY3Rpb24oc2Vw
YXJhdG9yKSB7CiAgICB2YXIgbWF0Y2ggPSB0aGlzLnN0cmlwKCkubWF0Y2goLyhb
Xj8jXSopKCMuKik/JC8pOwogICAgaWYgKCFtYXRjaCkgcmV0dXJuIHsgfTsKCiAg
ICByZXR1cm4gbWF0Y2hbMV0uc3BsaXQoc2VwYXJhdG9yIHx8ICcmJykuaW5qZWN0
KHsgfSwgZnVuY3Rpb24oaGFzaCwgcGFpcikgewogICAgICBpZiAoKHBhaXIgPSBw
YWlyLnNwbGl0KCc9JykpWzBdKSB7CiAgICAgICAgdmFyIGtleSA9IGRlY29kZVVS
SUNvbXBvbmVudChwYWlyLnNoaWZ0KCkpOwogICAgICAgIHZhciB2YWx1ZSA9IHBh
aXIubGVuZ3RoID4gMSA/IHBhaXIuam9pbignPScpIDogcGFpclswXTsKICAgICAg
ICBpZiAodmFsdWUgIT0gdW5kZWZpbmVkKSB2YWx1ZSA9IGRlY29kZVVSSUNvbXBv
bmVudCh2YWx1ZSk7CgogICAgICAgIGlmIChrZXkgaW4gaGFzaCkgewogICAgICAg
ICAgaWYgKCFPYmplY3QuaXNBcnJheShoYXNoW2tleV0pKSBoYXNoW2tleV0gPSBb
aGFzaFtrZXldXTsKICAgICAgICAgIGhhc2hba2V5XS5wdXNoKHZhbHVlKTsKICAg
ICAgICB9CiAgICAgICAgZWxzZSBoYXNoW2tleV0gPSB2YWx1ZTsKICAgICAgfQog
ICAgICByZXR1cm4gaGFzaDsKICAgIH0pOwogIH0sCgogIHRvQXJyYXk6IGZ1bmN0
aW9uKCkgewogICAgcmV0dXJuIHRoaXMuc3BsaXQoJycpOwogIH0sCgogIHN1Y2M6
IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMuc2xpY2UoMCwgdGhpcy5sZW5n
dGggLSAxKSArCiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUodGhpcy5jaGFyQ29k
ZUF0KHRoaXMubGVuZ3RoIC0gMSkgKyAxKTsKICB9LAoKICB0aW1lczogZnVuY3Rp
b24oY291bnQpIHsKICAgIHJldHVybiBjb3VudCA8IDEgPyAnJyA6IG5ldyBBcnJh
eShjb3VudCArIDEpLmpvaW4odGhpcyk7CiAgfSwKCiAgY2FtZWxpemU6IGZ1bmN0
aW9uKCkgewogICAgdmFyIHBhcnRzID0gdGhpcy5zcGxpdCgnLScpLCBsZW4gPSBw
YXJ0cy5sZW5ndGg7CiAgICBpZiAobGVuID09IDEpIHJldHVybiBwYXJ0c1swXTsK
CiAgICB2YXIgY2FtZWxpemVkID0gdGhpcy5jaGFyQXQoMCkgPT0gJy0nCiAgICAg
ID8gcGFydHNbMF0uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBwYXJ0c1swXS5z
dWJzdHJpbmcoMSkKICAgICAgOiBwYXJ0c1swXTsKCiAgICBmb3IgKHZhciBpID0g
MTsgaSA8IGxlbjsgaSsrKQogICAgICBjYW1lbGl6ZWQgKz0gcGFydHNbaV0uY2hh
ckF0KDApLnRvVXBwZXJDYXNlKCkgKyBwYXJ0c1tpXS5zdWJzdHJpbmcoMSk7Cgog
ICAgcmV0dXJuIGNhbWVsaXplZDsKICB9LAoKICBjYXBpdGFsaXplOiBmdW5jdGlv
bigpIHsKICAgIHJldHVybiB0aGlzLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsg
dGhpcy5zdWJzdHJpbmcoMSkudG9Mb3dlckNhc2UoKTsKICB9LAoKICB1bmRlcnNj
b3JlOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlzLmdzdWIoLzo6LywgJy8n
KS5nc3ViKC8oW0EtWl0rKShbQS1aXVthLXpdKS8sJyN7MX1fI3syfScpLmdzdWIo
LyhbYS16XGRdKShbQS1aXSkvLCcjezF9XyN7Mn0nKS5nc3ViKC8tLywnXycpLnRv
TG93ZXJDYXNlKCk7CiAgfSwKCiAgZGFzaGVyaXplOiBmdW5jdGlvbigpIHsKICAg
IHJldHVybiB0aGlzLmdzdWIoL18vLCctJyk7CiAgfSwKCiAgaW5zcGVjdDogZnVu
Y3Rpb24odXNlRG91YmxlUXVvdGVzKSB7CiAgICB2YXIgZXNjYXBlZFN0cmluZyA9
IHRoaXMuZ3N1YigvW1x4MDAtXHgxZlxcXS8sIGZ1bmN0aW9uKG1hdGNoKSB7CiAg
ICAgIHZhciBjaGFyYWN0ZXIgPSBTdHJpbmcuc3BlY2lhbENoYXJbbWF0Y2hbMF1d
OwogICAgICByZXR1cm4gY2hhcmFjdGVyID8gY2hhcmFjdGVyIDogJ1xcdTAwJyAr
IG1hdGNoWzBdLmNoYXJDb2RlQXQoKS50b1BhZGRlZFN0cmluZygyLCAxNik7CiAg
ICB9KTsKICAgIGlmICh1c2VEb3VibGVRdW90ZXMpIHJldHVybiAnIicgKyBlc2Nh
cGVkU3RyaW5nLnJlcGxhY2UoLyIvZywgJ1xcIicpICsgJyInOwogICAgcmV0dXJu
ICInIiArIGVzY2FwZWRTdHJpbmcucmVwbGFjZSgvJy9nLCAnXFxcJycpICsgIici
OwogIH0sCgogIHRvSlNPTjogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhpcy5p
bnNwZWN0KHRydWUpOwogIH0sCgogIHVuZmlsdGVySlNPTjogZnVuY3Rpb24oZmls
dGVyKSB7CiAgICByZXR1cm4gdGhpcy5zdWIoZmlsdGVyIHx8IFByb3RvdHlwZS5K
U09ORmlsdGVyLCAnI3sxfScpOwogIH0sCgogIGlzSlNPTjogZnVuY3Rpb24oKSB7
CiAgICB2YXIgc3RyID0gdGhpczsKICAgIGlmIChzdHIuYmxhbmsoKSkgcmV0dXJu
IGZhbHNlOwogICAgc3RyID0gdGhpcy5yZXBsYWNlKC9cXC4vZywgJ0AnKS5yZXBs
YWNlKC8iW14iXFxcblxyXSoiL2csICcnKTsKICAgIHJldHVybiAoL15bLDp7fVxb
XF0wLTkuXC0rRWFlZmxuci11IFxuXHJcdF0qJC8pLnRlc3Qoc3RyKTsKICB9LAoK
ICBldmFsSlNPTjogZnVuY3Rpb24oc2FuaXRpemUpIHsKICAgIHZhciBqc29uID0g
dGhpcy51bmZpbHRlckpTT04oKTsKICAgIHRyeSB7CiAgICAgIGlmICghc2FuaXRp
emUgfHwganNvbi5pc0pTT04oKSkgcmV0dXJuIGV2YWwoJygnICsganNvbiArICcp
Jyk7CiAgICB9IGNhdGNoIChlKSB7IH0KICAgIHRocm93IG5ldyBTeW50YXhFcnJv
cignQmFkbHkgZm9ybWVkIEpTT04gc3RyaW5nOiAnICsgdGhpcy5pbnNwZWN0KCkp
OwogIH0sCgogIGluY2x1ZGU6IGZ1bmN0aW9uKHBhdHRlcm4pIHsKICAgIHJldHVy
biB0aGlzLmluZGV4T2YocGF0dGVybikgPiAtMTsKICB9LAoKICBzdGFydHNXaXRo
OiBmdW5jdGlvbihwYXR0ZXJuKSB7CiAgICByZXR1cm4gdGhpcy5pbmRleE9mKHBh
dHRlcm4pID09PSAwOwogIH0sCgogIGVuZHNXaXRoOiBmdW5jdGlvbihwYXR0ZXJu
KSB7CiAgICB2YXIgZCA9IHRoaXMubGVuZ3RoIC0gcGF0dGVybi5sZW5ndGg7CiAg
ICByZXR1cm4gZCA+PSAwICYmIHRoaXMubGFzdEluZGV4T2YocGF0dGVybikgPT09
IGQ7CiAgfSwKCiAgZW1wdHk6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMg
PT0gJyc7CiAgfSwKCiAgYmxhbms6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIC9e
XHMqJC8udGVzdCh0aGlzKTsKICB9LAoKICBpbnRlcnBvbGF0ZTogZnVuY3Rpb24o
b2JqZWN0LCBwYXR0ZXJuKSB7CiAgICByZXR1cm4gbmV3IFRlbXBsYXRlKHRoaXMs
IHBhdHRlcm4pLmV2YWx1YXRlKG9iamVjdCk7CiAgfQp9KTsKCmlmIChQcm90b3R5
cGUuQnJvd3Nlci5XZWJLaXQgfHwgUHJvdG90eXBlLkJyb3dzZXIuSUUpIE9iamVj
dC5leHRlbmQoU3RyaW5nLnByb3RvdHlwZSwgewogIGVzY2FwZUhUTUw6IGZ1bmN0
aW9uKCkgewogICAgcmV0dXJuIHRoaXMucmVwbGFjZSgvJi9nLCcmYW1wOycpLnJl
cGxhY2UoLzwvZywnJmx0OycpLnJlcGxhY2UoLz4vZywnJmd0OycpOwogIH0sCiAg
dW5lc2NhcGVIVE1MOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlzLnN0cmlw
VGFncygpLnJlcGxhY2UoLyZhbXA7L2csJyYnKS5yZXBsYWNlKC8mbHQ7L2csJzwn
KS5yZXBsYWNlKC8mZ3Q7L2csJz4nKTsKICB9Cn0pOwoKU3RyaW5nLnByb3RvdHlw
ZS5nc3ViLnByZXBhcmVSZXBsYWNlbWVudCA9IGZ1bmN0aW9uKHJlcGxhY2VtZW50
KSB7CiAgaWYgKE9iamVjdC5pc0Z1bmN0aW9uKHJlcGxhY2VtZW50KSkgcmV0dXJu
IHJlcGxhY2VtZW50OwogIHZhciB0ZW1wbGF0ZSA9IG5ldyBUZW1wbGF0ZShyZXBs
YWNlbWVudCk7CiAgcmV0dXJuIGZ1bmN0aW9uKG1hdGNoKSB7IHJldHVybiB0ZW1w
bGF0ZS5ldmFsdWF0ZShtYXRjaCkgfTsKfTsKClN0cmluZy5wcm90b3R5cGUucGFy
c2VRdWVyeSA9IFN0cmluZy5wcm90b3R5cGUudG9RdWVyeVBhcmFtczsKCk9iamVj
dC5leHRlbmQoU3RyaW5nLnByb3RvdHlwZS5lc2NhcGVIVE1MLCB7CiAgZGl2OiAg
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksCiAgdGV4dDogZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoJycpCn0pOwoKU3RyaW5nLnByb3RvdHlwZS5lc2NhcGVI
VE1MLmRpdi5hcHBlbmRDaGlsZChTdHJpbmcucHJvdG90eXBlLmVzY2FwZUhUTUwu
dGV4dCk7Cgp2YXIgVGVtcGxhdGUgPSBDbGFzcy5jcmVhdGUoewogIGluaXRpYWxp
emU6IGZ1bmN0aW9uKHRlbXBsYXRlLCBwYXR0ZXJuKSB7CiAgICB0aGlzLnRlbXBs
YXRlID0gdGVtcGxhdGUudG9TdHJpbmcoKTsKICAgIHRoaXMucGF0dGVybiA9IHBh
dHRlcm4gfHwgVGVtcGxhdGUuUGF0dGVybjsKICB9LAoKICBldmFsdWF0ZTogZnVu
Y3Rpb24ob2JqZWN0KSB7CiAgICBpZiAoT2JqZWN0LmlzRnVuY3Rpb24ob2JqZWN0
LnRvVGVtcGxhdGVSZXBsYWNlbWVudHMpKQogICAgICBvYmplY3QgPSBvYmplY3Qu
dG9UZW1wbGF0ZVJlcGxhY2VtZW50cygpOwoKICAgIHJldHVybiB0aGlzLnRlbXBs
YXRlLmdzdWIodGhpcy5wYXR0ZXJuLCBmdW5jdGlvbihtYXRjaCkgewogICAgICBp
ZiAob2JqZWN0ID09IG51bGwpIHJldHVybiAnJzsKCiAgICAgIHZhciBiZWZvcmUg
PSBtYXRjaFsxXSB8fCAnJzsKICAgICAgaWYgKGJlZm9yZSA9PSAnXFwnKSByZXR1
cm4gbWF0Y2hbMl07CgogICAgICB2YXIgY3R4ID0gb2JqZWN0LCBleHByID0gbWF0
Y2hbM107CiAgICAgIHZhciBwYXR0ZXJuID0gL14oW14uW10rfFxbKCg/Oi4qP1te
XFxdKT8pXF0pKFwufFxbfCQpLzsKICAgICAgbWF0Y2ggPSBwYXR0ZXJuLmV4ZWMo
ZXhwcik7CiAgICAgIGlmIChtYXRjaCA9PSBudWxsKSByZXR1cm4gYmVmb3JlOwoK
ICAgICAgd2hpbGUgKG1hdGNoICE9IG51bGwpIHsKICAgICAgICB2YXIgY29tcCA9
IG1hdGNoWzFdLnN0YXJ0c1dpdGgoJ1snKSA/IG1hdGNoWzJdLmdzdWIoJ1xcXFxd
JywgJ10nKSA6IG1hdGNoWzFdOwogICAgICAgIGN0eCA9IGN0eFtjb21wXTsKICAg
ICAgICBpZiAobnVsbCA9PSBjdHggfHwgJycgPT0gbWF0Y2hbM10pIGJyZWFrOwog
ICAgICAgIGV4cHIgPSBleHByLnN1YnN0cmluZygnWycgPT0gbWF0Y2hbM10gPyBt
YXRjaFsxXS5sZW5ndGggOiBtYXRjaFswXS5sZW5ndGgpOwogICAgICAgIG1hdGNo
ID0gcGF0dGVybi5leGVjKGV4cHIpOwogICAgICB9CgogICAgICByZXR1cm4gYmVm
b3JlICsgU3RyaW5nLmludGVycHJldChjdHgpOwogICAgfSk7CiAgfQp9KTsKVGVt
cGxhdGUuUGF0dGVybiA9IC8oXnwufFxyfFxuKSgjXHsoLio/KVx9KS87Cgp2YXIg
JGJyZWFrID0geyB9OwoKdmFyIEVudW1lcmFibGUgPSB7CiAgZWFjaDogZnVuY3Rp
b24oaXRlcmF0b3IsIGNvbnRleHQpIHsKICAgIHZhciBpbmRleCA9IDA7CiAgICB0
cnkgewogICAgICB0aGlzLl9lYWNoKGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAg
aXRlcmF0b3IuY2FsbChjb250ZXh0LCB2YWx1ZSwgaW5kZXgrKyk7CiAgICAgIH0p
OwogICAgfSBjYXRjaCAoZSkgewogICAgICBpZiAoZSAhPSAkYnJlYWspIHRocm93
IGU7CiAgICB9CiAgICByZXR1cm4gdGhpczsKICB9LAoKICBlYWNoU2xpY2U6IGZ1
bmN0aW9uKG51bWJlciwgaXRlcmF0b3IsIGNvbnRleHQpIHsKICAgIHZhciBpbmRl
eCA9IC1udW1iZXIsIHNsaWNlcyA9IFtdLCBhcnJheSA9IHRoaXMudG9BcnJheSgp
OwogICAgaWYgKG51bWJlciA8IDEpIHJldHVybiBhcnJheTsKICAgIHdoaWxlICgo
aW5kZXggKz0gbnVtYmVyKSA8IGFycmF5Lmxlbmd0aCkKICAgICAgc2xpY2VzLnB1
c2goYXJyYXkuc2xpY2UoaW5kZXgsIGluZGV4K251bWJlcikpOwogICAgcmV0dXJu
IHNsaWNlcy5jb2xsZWN0KGl0ZXJhdG9yLCBjb250ZXh0KTsKICB9LAoKICBhbGw6
IGZ1bmN0aW9uKGl0ZXJhdG9yLCBjb250ZXh0KSB7CiAgICBpdGVyYXRvciA9IGl0
ZXJhdG9yIHx8IFByb3RvdHlwZS5LOwogICAgdmFyIHJlc3VsdCA9IHRydWU7CiAg
ICB0aGlzLmVhY2goZnVuY3Rpb24odmFsdWUsIGluZGV4KSB7CiAgICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAhIWl0ZXJhdG9yLmNhbGwoY29udGV4dCwgdmFsdWUsIGlu
ZGV4KTsKICAgICAgaWYgKCFyZXN1bHQpIHRocm93ICRicmVhazsKICAgIH0pOwog
ICAgcmV0dXJuIHJlc3VsdDsKICB9LAoKICBhbnk6IGZ1bmN0aW9uKGl0ZXJhdG9y
LCBjb250ZXh0KSB7CiAgICBpdGVyYXRvciA9IGl0ZXJhdG9yIHx8IFByb3RvdHlw
ZS5LOwogICAgdmFyIHJlc3VsdCA9IGZhbHNlOwogICAgdGhpcy5lYWNoKGZ1bmN0
aW9uKHZhbHVlLCBpbmRleCkgewogICAgICBpZiAocmVzdWx0ID0gISFpdGVyYXRv
ci5jYWxsKGNvbnRleHQsIHZhbHVlLCBpbmRleCkpCiAgICAgICAgdGhyb3cgJGJy
ZWFrOwogICAgfSk7CiAgICByZXR1cm4gcmVzdWx0OwogIH0sCgogIGNvbGxlY3Q6
IGZ1bmN0aW9uKGl0ZXJhdG9yLCBjb250ZXh0KSB7CiAgICBpdGVyYXRvciA9IGl0
ZXJhdG9yIHx8IFByb3RvdHlwZS5LOwogICAgdmFyIHJlc3VsdHMgPSBbXTsKICAg
IHRoaXMuZWFjaChmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHsKICAgICAgcmVzdWx0
cy5wdXNoKGl0ZXJhdG9yLmNhbGwoY29udGV4dCwgdmFsdWUsIGluZGV4KSk7CiAg
ICB9KTsKICAgIHJldHVybiByZXN1bHRzOwogIH0sCgogIGRldGVjdDogZnVuY3Rp
b24oaXRlcmF0b3IsIGNvbnRleHQpIHsKICAgIHZhciByZXN1bHQ7CiAgICB0aGlz
LmVhY2goZnVuY3Rpb24odmFsdWUsIGluZGV4KSB7CiAgICAgIGlmIChpdGVyYXRv
ci5jYWxsKGNvbnRleHQsIHZhbHVlLCBpbmRleCkpIHsKICAgICAgICByZXN1bHQg
PSB2YWx1ZTsKICAgICAgICB0aHJvdyAkYnJlYWs7CiAgICAgIH0KICAgIH0pOwog
ICAgcmV0dXJuIHJlc3VsdDsKICB9LAoKICBmaW5kQWxsOiBmdW5jdGlvbihpdGVy
YXRvciwgY29udGV4dCkgewogICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgIHRoaXMu
ZWFjaChmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHsKICAgICAgaWYgKGl0ZXJhdG9y
LmNhbGwoY29udGV4dCwgdmFsdWUsIGluZGV4KSkKICAgICAgICByZXN1bHRzLnB1
c2godmFsdWUpOwogICAgfSk7CiAgICByZXR1cm4gcmVzdWx0czsKICB9LAoKICBn
cmVwOiBmdW5jdGlvbihmaWx0ZXIsIGl0ZXJhdG9yLCBjb250ZXh0KSB7CiAgICBp
dGVyYXRvciA9IGl0ZXJhdG9yIHx8IFByb3RvdHlwZS5LOwogICAgdmFyIHJlc3Vs
dHMgPSBbXTsKCiAgICBpZiAoT2JqZWN0LmlzU3RyaW5nKGZpbHRlcikpCiAgICAg
IGZpbHRlciA9IG5ldyBSZWdFeHAoZmlsdGVyKTsKCiAgICB0aGlzLmVhY2goZnVu
Y3Rpb24odmFsdWUsIGluZGV4KSB7CiAgICAgIGlmIChmaWx0ZXIubWF0Y2godmFs
dWUpKQogICAgICAgIHJlc3VsdHMucHVzaChpdGVyYXRvci5jYWxsKGNvbnRleHQs
IHZhbHVlLCBpbmRleCkpOwogICAgfSk7CiAgICByZXR1cm4gcmVzdWx0czsKICB9
LAoKICBpbmNsdWRlOiBmdW5jdGlvbihvYmplY3QpIHsKICAgIGlmIChPYmplY3Qu
aXNGdW5jdGlvbih0aGlzLmluZGV4T2YpKQogICAgICBpZiAodGhpcy5pbmRleE9m
KG9iamVjdCkgIT0gLTEpIHJldHVybiB0cnVlOwoKICAgIHZhciBmb3VuZCA9IGZh
bHNlOwogICAgdGhpcy5lYWNoKGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgIGlmICh2
YWx1ZSA9PSBvYmplY3QpIHsKICAgICAgICBmb3VuZCA9IHRydWU7CiAgICAgICAg
dGhyb3cgJGJyZWFrOwogICAgICB9CiAgICB9KTsKICAgIHJldHVybiBmb3VuZDsK
ICB9LAoKICBpbkdyb3Vwc09mOiBmdW5jdGlvbihudW1iZXIsIGZpbGxXaXRoKSB7
CiAgICBmaWxsV2l0aCA9IE9iamVjdC5pc1VuZGVmaW5lZChmaWxsV2l0aCkgPyBu
dWxsIDogZmlsbFdpdGg7CiAgICByZXR1cm4gdGhpcy5lYWNoU2xpY2UobnVtYmVy
LCBmdW5jdGlvbihzbGljZSkgewogICAgICB3aGlsZShzbGljZS5sZW5ndGggPCBu
dW1iZXIpIHNsaWNlLnB1c2goZmlsbFdpdGgpOwogICAgICByZXR1cm4gc2xpY2U7
CiAgICB9KTsKICB9LAoKICBpbmplY3Q6IGZ1bmN0aW9uKG1lbW8sIGl0ZXJhdG9y
LCBjb250ZXh0KSB7CiAgICB0aGlzLmVhY2goZnVuY3Rpb24odmFsdWUsIGluZGV4
KSB7CiAgICAgIG1lbW8gPSBpdGVyYXRvci5jYWxsKGNvbnRleHQsIG1lbW8sIHZh
bHVlLCBpbmRleCk7CiAgICB9KTsKICAgIHJldHVybiBtZW1vOwogIH0sCgogIGlu
dm9rZTogZnVuY3Rpb24obWV0aG9kKSB7CiAgICB2YXIgYXJncyA9ICRBKGFyZ3Vt
ZW50cykuc2xpY2UoMSk7CiAgICByZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24odmFs
dWUpIHsKICAgICAgcmV0dXJuIHZhbHVlW21ldGhvZF0uYXBwbHkodmFsdWUsIGFy
Z3MpOwogICAgfSk7CiAgfSwKCiAgbWF4OiBmdW5jdGlvbihpdGVyYXRvciwgY29u
dGV4dCkgewogICAgaXRlcmF0b3IgPSBpdGVyYXRvciB8fCBQcm90b3R5cGUuSzsK
ICAgIHZhciByZXN1bHQ7CiAgICB0aGlzLmVhY2goZnVuY3Rpb24odmFsdWUsIGlu
ZGV4KSB7CiAgICAgIHZhbHVlID0gaXRlcmF0b3IuY2FsbChjb250ZXh0LCB2YWx1
ZSwgaW5kZXgpOwogICAgICBpZiAocmVzdWx0ID09IG51bGwgfHwgdmFsdWUgPj0g
cmVzdWx0KQogICAgICAgIHJlc3VsdCA9IHZhbHVlOwogICAgfSk7CiAgICByZXR1
cm4gcmVzdWx0OwogIH0sCgogIG1pbjogZnVuY3Rpb24oaXRlcmF0b3IsIGNvbnRl
eHQpIHsKICAgIGl0ZXJhdG9yID0gaXRlcmF0b3IgfHwgUHJvdG90eXBlLks7CiAg
ICB2YXIgcmVzdWx0OwogICAgdGhpcy5lYWNoKGZ1bmN0aW9uKHZhbHVlLCBpbmRl
eCkgewogICAgICB2YWx1ZSA9IGl0ZXJhdG9yLmNhbGwoY29udGV4dCwgdmFsdWUs
IGluZGV4KTsKICAgICAgaWYgKHJlc3VsdCA9PSBudWxsIHx8IHZhbHVlIDwgcmVz
dWx0KQogICAgICAgIHJlc3VsdCA9IHZhbHVlOwogICAgfSk7CiAgICByZXR1cm4g
cmVzdWx0OwogIH0sCgogIHBhcnRpdGlvbjogZnVuY3Rpb24oaXRlcmF0b3IsIGNv
bnRleHQpIHsKICAgIGl0ZXJhdG9yID0gaXRlcmF0b3IgfHwgUHJvdG90eXBlLks7
CiAgICB2YXIgdHJ1ZXMgPSBbXSwgZmFsc2VzID0gW107CiAgICB0aGlzLmVhY2go
ZnVuY3Rpb24odmFsdWUsIGluZGV4KSB7CiAgICAgIChpdGVyYXRvci5jYWxsKGNv
bnRleHQsIHZhbHVlLCBpbmRleCkgPwogICAgICAgIHRydWVzIDogZmFsc2VzKS5w
dXNoKHZhbHVlKTsKICAgIH0pOwogICAgcmV0dXJuIFt0cnVlcywgZmFsc2VzXTsK
ICB9LAoKICBwbHVjazogZnVuY3Rpb24ocHJvcGVydHkpIHsKICAgIHZhciByZXN1
bHRzID0gW107CiAgICB0aGlzLmVhY2goZnVuY3Rpb24odmFsdWUpIHsKICAgICAg
cmVzdWx0cy5wdXNoKHZhbHVlW3Byb3BlcnR5XSk7CiAgICB9KTsKICAgIHJldHVy
biByZXN1bHRzOwogIH0sCgogIHJlamVjdDogZnVuY3Rpb24oaXRlcmF0b3IsIGNv
bnRleHQpIHsKICAgIHZhciByZXN1bHRzID0gW107CiAgICB0aGlzLmVhY2goZnVu
Y3Rpb24odmFsdWUsIGluZGV4KSB7CiAgICAgIGlmICghaXRlcmF0b3IuY2FsbChj
b250ZXh0LCB2YWx1ZSwgaW5kZXgpKQogICAgICAgIHJlc3VsdHMucHVzaCh2YWx1
ZSk7CiAgICB9KTsKICAgIHJldHVybiByZXN1bHRzOwogIH0sCgogIHNvcnRCeTog
ZnVuY3Rpb24oaXRlcmF0b3IsIGNvbnRleHQpIHsKICAgIHJldHVybiB0aGlzLm1h
cChmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHsKICAgICAgcmV0dXJuIHsKICAgICAg
ICB2YWx1ZTogdmFsdWUsCiAgICAgICAgY3JpdGVyaWE6IGl0ZXJhdG9yLmNhbGwo
Y29udGV4dCwgdmFsdWUsIGluZGV4KQogICAgICB9OwogICAgfSkuc29ydChmdW5j
dGlvbihsZWZ0LCByaWdodCkgewogICAgICB2YXIgYSA9IGxlZnQuY3JpdGVyaWEs
IGIgPSByaWdodC5jcml0ZXJpYTsKICAgICAgcmV0dXJuIGEgPCBiID8gLTEgOiBh
ID4gYiA/IDEgOiAwOwogICAgfSkucGx1Y2soJ3ZhbHVlJyk7CiAgfSwKCiAgdG9B
cnJheTogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhpcy5tYXAoKTsKICB9LAoK
ICB6aXA6IGZ1bmN0aW9uKCkgewogICAgdmFyIGl0ZXJhdG9yID0gUHJvdG90eXBl
LkssIGFyZ3MgPSAkQShhcmd1bWVudHMpOwogICAgaWYgKE9iamVjdC5pc0Z1bmN0
aW9uKGFyZ3MubGFzdCgpKSkKICAgICAgaXRlcmF0b3IgPSBhcmdzLnBvcCgpOwoK
ICAgIHZhciBjb2xsZWN0aW9ucyA9IFt0aGlzXS5jb25jYXQoYXJncykubWFwKCRB
KTsKICAgIHJldHVybiB0aGlzLm1hcChmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHsK
ICAgICAgcmV0dXJuIGl0ZXJhdG9yKGNvbGxlY3Rpb25zLnBsdWNrKGluZGV4KSk7
CiAgICB9KTsKICB9LAoKICBzaXplOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0
aGlzLnRvQXJyYXkoKS5sZW5ndGg7CiAgfSwKCiAgaW5zcGVjdDogZnVuY3Rpb24o
KSB7CiAgICByZXR1cm4gJyM8RW51bWVyYWJsZTonICsgdGhpcy50b0FycmF5KCku
aW5zcGVjdCgpICsgJz4nOwogIH0KfTsKCk9iamVjdC5leHRlbmQoRW51bWVyYWJs
ZSwgewogIG1hcDogICAgIEVudW1lcmFibGUuY29sbGVjdCwKICBmaW5kOiAgICBF
bnVtZXJhYmxlLmRldGVjdCwKICBzZWxlY3Q6ICBFbnVtZXJhYmxlLmZpbmRBbGws
CiAgZmlsdGVyOiAgRW51bWVyYWJsZS5maW5kQWxsLAogIG1lbWJlcjogIEVudW1l
cmFibGUuaW5jbHVkZSwKICBlbnRyaWVzOiBFbnVtZXJhYmxlLnRvQXJyYXksCiAg
ZXZlcnk6ICAgRW51bWVyYWJsZS5hbGwsCiAgc29tZTogICAgRW51bWVyYWJsZS5h
bnkKfSk7CmZ1bmN0aW9uICRBKGl0ZXJhYmxlKSB7CiAgaWYgKCFpdGVyYWJsZSkg
cmV0dXJuIFtdOwogIGlmIChpdGVyYWJsZS50b0FycmF5KSByZXR1cm4gaXRlcmFi
bGUudG9BcnJheSgpOwogIHZhciBsZW5ndGggPSBpdGVyYWJsZS5sZW5ndGggfHwg
MCwgcmVzdWx0cyA9IG5ldyBBcnJheShsZW5ndGgpOwogIHdoaWxlIChsZW5ndGgt
LSkgcmVzdWx0c1tsZW5ndGhdID0gaXRlcmFibGVbbGVuZ3RoXTsKICByZXR1cm4g
cmVzdWx0czsKfQoKaWYgKFByb3RvdHlwZS5Ccm93c2VyLldlYktpdCkgewogICRB
ID0gZnVuY3Rpb24oaXRlcmFibGUpIHsKICAgIGlmICghaXRlcmFibGUpIHJldHVy
biBbXTsKICAgIC8vIEluIFNhZmFyaSwgb25seSB1c2UgdGhlIGB0b0FycmF5YCBt
ZXRob2QgaWYgaXQncyBub3QgYSBOb2RlTGlzdC4KICAgIC8vIEEgTm9kZUxpc3Qg
aXMgYSBmdW5jdGlvbiwgaGFzIGFuIGZ1bmN0aW9uIGBpdGVtYCBwcm9wZXJ0eSwg
YW5kIGEgbnVtZXJpYwogICAgLy8gYGxlbmd0aGAgcHJvcGVydHkuIEFkYXB0ZWQg
ZnJvbSBHb29nbGUgRG9jdHlwZS4KICAgIGlmICghKHR5cGVvZiBpdGVyYWJsZSA9
PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgaXRlcmFibGUubGVuZ3RoID09PQogICAg
ICAgICdudW1iZXInICYmIHR5cGVvZiBpdGVyYWJsZS5pdGVtID09PSAnZnVuY3Rp
b24nKSAmJiBpdGVyYWJsZS50b0FycmF5KQogICAgICByZXR1cm4gaXRlcmFibGUu
dG9BcnJheSgpOwogICAgdmFyIGxlbmd0aCA9IGl0ZXJhYmxlLmxlbmd0aCB8fCAw
LCByZXN1bHRzID0gbmV3IEFycmF5KGxlbmd0aCk7CiAgICB3aGlsZSAobGVuZ3Ro
LS0pIHJlc3VsdHNbbGVuZ3RoXSA9IGl0ZXJhYmxlW2xlbmd0aF07CiAgICByZXR1
cm4gcmVzdWx0czsKICB9Owp9CgpBcnJheS5mcm9tID0gJEE7CgpPYmplY3QuZXh0
ZW5kKEFycmF5LnByb3RvdHlwZSwgRW51bWVyYWJsZSk7CgppZiAoIUFycmF5LnBy
b3RvdHlwZS5fcmV2ZXJzZSkgQXJyYXkucHJvdG90eXBlLl9yZXZlcnNlID0gQXJy
YXkucHJvdG90eXBlLnJldmVyc2U7CgpPYmplY3QuZXh0ZW5kKEFycmF5LnByb3Rv
dHlwZSwgewogIF9lYWNoOiBmdW5jdGlvbihpdGVyYXRvcikgewogICAgZm9yICh2
YXIgaSA9IDAsIGxlbmd0aCA9IHRoaXMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKysp
CiAgICAgIGl0ZXJhdG9yKHRoaXNbaV0pOwogIH0sCgogIGNsZWFyOiBmdW5jdGlv
bigpIHsKICAgIHRoaXMubGVuZ3RoID0gMDsKICAgIHJldHVybiB0aGlzOwogIH0s
CgogIGZpcnN0OiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlzWzBdOwogIH0s
CgogIGxhc3Q6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXNbdGhpcy5sZW5n
dGggLSAxXTsKICB9LAoKICBjb21wYWN0OiBmdW5jdGlvbigpIHsKICAgIHJldHVy
biB0aGlzLnNlbGVjdChmdW5jdGlvbih2YWx1ZSkgewogICAgICByZXR1cm4gdmFs
dWUgIT0gbnVsbDsKICAgIH0pOwogIH0sCgogIGZsYXR0ZW46IGZ1bmN0aW9uKCkg
ewogICAgcmV0dXJuIHRoaXMuaW5qZWN0KFtdLCBmdW5jdGlvbihhcnJheSwgdmFs
dWUpIHsKICAgICAgcmV0dXJuIGFycmF5LmNvbmNhdChPYmplY3QuaXNBcnJheSh2
YWx1ZSkgPwogICAgICAgIHZhbHVlLmZsYXR0ZW4oKSA6IFt2YWx1ZV0pOwogICAg
fSk7CiAgfSwKCiAgd2l0aG91dDogZnVuY3Rpb24oKSB7CiAgICB2YXIgdmFsdWVz
ID0gJEEoYXJndW1lbnRzKTsKICAgIHJldHVybiB0aGlzLnNlbGVjdChmdW5jdGlv
bih2YWx1ZSkgewogICAgICByZXR1cm4gIXZhbHVlcy5pbmNsdWRlKHZhbHVlKTsK
ICAgIH0pOwogIH0sCgogIHJldmVyc2U6IGZ1bmN0aW9uKGlubGluZSkgewogICAg
cmV0dXJuIChpbmxpbmUgIT09IGZhbHNlID8gdGhpcyA6IHRoaXMudG9BcnJheSgp
KS5fcmV2ZXJzZSgpOwogIH0sCgogIHJlZHVjZTogZnVuY3Rpb24oKSB7CiAgICBy
ZXR1cm4gdGhpcy5sZW5ndGggPiAxID8gdGhpcyA6IHRoaXNbMF07CiAgfSwKCiAg
dW5pcTogZnVuY3Rpb24oc29ydGVkKSB7CiAgICByZXR1cm4gdGhpcy5pbmplY3Qo
W10sIGZ1bmN0aW9uKGFycmF5LCB2YWx1ZSwgaW5kZXgpIHsKICAgICAgaWYgKDAg
PT0gaW5kZXggfHwgKHNvcnRlZCA/IGFycmF5Lmxhc3QoKSAhPSB2YWx1ZSA6ICFh
cnJheS5pbmNsdWRlKHZhbHVlKSkpCiAgICAgICAgYXJyYXkucHVzaCh2YWx1ZSk7
CiAgICAgIHJldHVybiBhcnJheTsKICAgIH0pOwogIH0sCgogIGludGVyc2VjdDog
ZnVuY3Rpb24oYXJyYXkpIHsKICAgIHJldHVybiB0aGlzLnVuaXEoKS5maW5kQWxs
KGZ1bmN0aW9uKGl0ZW0pIHsKICAgICAgcmV0dXJuIGFycmF5LmRldGVjdChmdW5j
dGlvbih2YWx1ZSkgeyByZXR1cm4gaXRlbSA9PT0gdmFsdWUgfSk7CiAgICB9KTsK
ICB9LAoKICBjbG9uZTogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gW10uY29uY2F0
KHRoaXMpOwogIH0sCgogIHNpemU6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRo
aXMubGVuZ3RoOwogIH0sCgogIGluc3BlY3Q6IGZ1bmN0aW9uKCkgewogICAgcmV0
dXJuICdbJyArIHRoaXMubWFwKE9iamVjdC5pbnNwZWN0KS5qb2luKCcsICcpICsg
J10nOwogIH0sCgogIHRvSlNPTjogZnVuY3Rpb24oKSB7CiAgICB2YXIgcmVzdWx0
cyA9IFtdOwogICAgdGhpcy5lYWNoKGZ1bmN0aW9uKG9iamVjdCkgewogICAgICB2
YXIgdmFsdWUgPSBPYmplY3QudG9KU09OKG9iamVjdCk7CiAgICAgIGlmICghT2Jq
ZWN0LmlzVW5kZWZpbmVkKHZhbHVlKSkgcmVzdWx0cy5wdXNoKHZhbHVlKTsKICAg
IH0pOwogICAgcmV0dXJuICdbJyArIHJlc3VsdHMuam9pbignLCAnKSArICddJzsK
ICB9Cn0pOwoKLy8gdXNlIG5hdGl2ZSBicm93c2VyIEpTIDEuNiBpbXBsZW1lbnRh
dGlvbiBpZiBhdmFpbGFibGUKaWYgKE9iamVjdC5pc0Z1bmN0aW9uKEFycmF5LnBy
b3RvdHlwZS5mb3JFYWNoKSkKICBBcnJheS5wcm90b3R5cGUuX2VhY2ggPSBBcnJh
eS5wcm90b3R5cGUuZm9yRWFjaDsKCmlmICghQXJyYXkucHJvdG90eXBlLmluZGV4
T2YpIEFycmF5LnByb3RvdHlwZS5pbmRleE9mID0gZnVuY3Rpb24oaXRlbSwgaSkg
ewogIGkgfHwgKGkgPSAwKTsKICB2YXIgbGVuZ3RoID0gdGhpcy5sZW5ndGg7CiAg
aWYgKGkgPCAwKSBpID0gbGVuZ3RoICsgaTsKICBmb3IgKDsgaSA8IGxlbmd0aDsg
aSsrKQogICAgaWYgKHRoaXNbaV0gPT09IGl0ZW0pIHJldHVybiBpOwogIHJldHVy
biAtMTsKfTsKCmlmICghQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKSBBcnJh
eS5wcm90b3R5cGUubGFzdEluZGV4T2YgPSBmdW5jdGlvbihpdGVtLCBpKSB7CiAg
aSA9IGlzTmFOKGkpID8gdGhpcy5sZW5ndGggOiAoaSA8IDAgPyB0aGlzLmxlbmd0
aCArIGkgOiBpKSArIDE7CiAgdmFyIG4gPSB0aGlzLnNsaWNlKDAsIGkpLnJldmVy
c2UoKS5pbmRleE9mKGl0ZW0pOwogIHJldHVybiAobiA8IDApID8gbiA6IGkgLSBu
IC0gMTsKfTsKCkFycmF5LnByb3RvdHlwZS50b0FycmF5ID0gQXJyYXkucHJvdG90
eXBlLmNsb25lOwoKZnVuY3Rpb24gJHcoc3RyaW5nKSB7CiAgaWYgKCFPYmplY3Qu
aXNTdHJpbmcoc3RyaW5nKSkgcmV0dXJuIFtdOwogIHN0cmluZyA9IHN0cmluZy5z
dHJpcCgpOwogIHJldHVybiBzdHJpbmcgPyBzdHJpbmcuc3BsaXQoL1xzKy8pIDog
W107Cn0KCmlmIChQcm90b3R5cGUuQnJvd3Nlci5PcGVyYSl7CiAgQXJyYXkucHJv
dG90eXBlLmNvbmNhdCA9IGZ1bmN0aW9uKCkgewogICAgdmFyIGFycmF5ID0gW107
CiAgICBmb3IgKHZhciBpID0gMCwgbGVuZ3RoID0gdGhpcy5sZW5ndGg7IGkgPCBs
ZW5ndGg7IGkrKykgYXJyYXkucHVzaCh0aGlzW2ldKTsKICAgIGZvciAodmFyIGkg
PSAwLCBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKysp
IHsKICAgICAgaWYgKE9iamVjdC5pc0FycmF5KGFyZ3VtZW50c1tpXSkpIHsKICAg
ICAgICBmb3IgKHZhciBqID0gMCwgYXJyYXlMZW5ndGggPSBhcmd1bWVudHNbaV0u
bGVuZ3RoOyBqIDwgYXJyYXlMZW5ndGg7IGorKykKICAgICAgICAgIGFycmF5LnB1
c2goYXJndW1lbnRzW2ldW2pdKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBhcnJh
eS5wdXNoKGFyZ3VtZW50c1tpXSk7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiBh
cnJheTsKICB9Owp9Ck9iamVjdC5leHRlbmQoTnVtYmVyLnByb3RvdHlwZSwgewog
IHRvQ29sb3JQYXJ0OiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlzLnRvUGFk
ZGVkU3RyaW5nKDIsIDE2KTsKICB9LAoKICBzdWNjOiBmdW5jdGlvbigpIHsKICAg
IHJldHVybiB0aGlzICsgMTsKICB9LAoKICB0aW1lczogZnVuY3Rpb24oaXRlcmF0
b3IsIGNvbnRleHQpIHsKICAgICRSKDAsIHRoaXMsIHRydWUpLmVhY2goaXRlcmF0
b3IsIGNvbnRleHQpOwogICAgcmV0dXJuIHRoaXM7CiAgfSwKCiAgdG9QYWRkZWRT
dHJpbmc6IGZ1bmN0aW9uKGxlbmd0aCwgcmFkaXgpIHsKICAgIHZhciBzdHJpbmcg
PSB0aGlzLnRvU3RyaW5nKHJhZGl4IHx8IDEwKTsKICAgIHJldHVybiAnMCcudGlt
ZXMobGVuZ3RoIC0gc3RyaW5nLmxlbmd0aCkgKyBzdHJpbmc7CiAgfSwKCiAgdG9K
U09OOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiBpc0Zpbml0ZSh0aGlzKSA/IHRo
aXMudG9TdHJpbmcoKSA6ICdudWxsJzsKICB9Cn0pOwoKJHcoJ2FicyByb3VuZCBj
ZWlsIGZsb29yJykuZWFjaChmdW5jdGlvbihtZXRob2QpewogIE51bWJlci5wcm90
b3R5cGVbbWV0aG9kXSA9IE1hdGhbbWV0aG9kXS5tZXRob2RpemUoKTsKfSk7CmZ1
bmN0aW9uICRIKG9iamVjdCkgewogIHJldHVybiBuZXcgSGFzaChvYmplY3QpOwp9
OwoKdmFyIEhhc2ggPSBDbGFzcy5jcmVhdGUoRW51bWVyYWJsZSwgKGZ1bmN0aW9u
KCkgewoKICBmdW5jdGlvbiB0b1F1ZXJ5UGFpcihrZXksIHZhbHVlKSB7CiAgICBp
ZiAoT2JqZWN0LmlzVW5kZWZpbmVkKHZhbHVlKSkgcmV0dXJuIGtleTsKICAgIHJl
dHVybiBrZXkgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nLmludGVy
cHJldCh2YWx1ZSkpOwogIH0KCiAgcmV0dXJuIHsKICAgIGluaXRpYWxpemU6IGZ1
bmN0aW9uKG9iamVjdCkgewogICAgICB0aGlzLl9vYmplY3QgPSBPYmplY3QuaXNI
YXNoKG9iamVjdCkgPyBvYmplY3QudG9PYmplY3QoKSA6IE9iamVjdC5jbG9uZShv
YmplY3QpOwogICAgfSwKCiAgICBfZWFjaDogZnVuY3Rpb24oaXRlcmF0b3IpIHsK
ICAgICAgZm9yICh2YXIga2V5IGluIHRoaXMuX29iamVjdCkgewogICAgICAgIHZh
ciB2YWx1ZSA9IHRoaXMuX29iamVjdFtrZXldLCBwYWlyID0gW2tleSwgdmFsdWVd
OwogICAgICAgIHBhaXIua2V5ID0ga2V5OwogICAgICAgIHBhaXIudmFsdWUgPSB2
YWx1ZTsKICAgICAgICBpdGVyYXRvcihwYWlyKTsKICAgICAgfQogICAgfSwKCiAg
ICBzZXQ6IGZ1bmN0aW9uKGtleSwgdmFsdWUpIHsKICAgICAgcmV0dXJuIHRoaXMu
X29iamVjdFtrZXldID0gdmFsdWU7CiAgICB9LAoKICAgIGdldDogZnVuY3Rpb24o
a2V5KSB7CiAgICAgIC8vIHNpbXVsYXRpbmcgcG9vcmx5IHN1cHBvcnRlZCBoYXNP
d25Qcm9wZXJ0eQogICAgICBpZiAodGhpcy5fb2JqZWN0W2tleV0gIT09IE9iamVj
dC5wcm90b3R5cGVba2V5XSkKICAgICAgICByZXR1cm4gdGhpcy5fb2JqZWN0W2tl
eV07CiAgICB9LAoKICAgIHVuc2V0OiBmdW5jdGlvbihrZXkpIHsKICAgICAgdmFy
IHZhbHVlID0gdGhpcy5fb2JqZWN0W2tleV07CiAgICAgIGRlbGV0ZSB0aGlzLl9v
YmplY3Rba2V5XTsKICAgICAgcmV0dXJuIHZhbHVlOwogICAgfSwKCiAgICB0b09i
amVjdDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBPYmplY3QuY2xvbmUodGhp
cy5fb2JqZWN0KTsKICAgIH0sCgogICAga2V5czogZnVuY3Rpb24oKSB7CiAgICAg
IHJldHVybiB0aGlzLnBsdWNrKCdrZXknKTsKICAgIH0sCgogICAgdmFsdWVzOiBm
dW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRoaXMucGx1Y2soJ3ZhbHVlJyk7CiAg
ICB9LAoKICAgIGluZGV4OiBmdW5jdGlvbih2YWx1ZSkgewogICAgICB2YXIgbWF0
Y2ggPSB0aGlzLmRldGVjdChmdW5jdGlvbihwYWlyKSB7CiAgICAgICAgcmV0dXJu
IHBhaXIudmFsdWUgPT09IHZhbHVlOwogICAgICB9KTsKICAgICAgcmV0dXJuIG1h
dGNoICYmIG1hdGNoLmtleTsKICAgIH0sCgogICAgbWVyZ2U6IGZ1bmN0aW9uKG9i
amVjdCkgewogICAgICByZXR1cm4gdGhpcy5jbG9uZSgpLnVwZGF0ZShvYmplY3Qp
OwogICAgfSwKCiAgICB1cGRhdGU6IGZ1bmN0aW9uKG9iamVjdCkgewogICAgICBy
ZXR1cm4gbmV3IEhhc2gob2JqZWN0KS5pbmplY3QodGhpcywgZnVuY3Rpb24ocmVz
dWx0LCBwYWlyKSB7CiAgICAgICAgcmVzdWx0LnNldChwYWlyLmtleSwgcGFpci52
YWx1ZSk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfSk7CiAgICB9LAoK
ICAgIHRvUXVlcnlTdHJpbmc6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGhp
cy5pbmplY3QoW10sIGZ1bmN0aW9uKHJlc3VsdHMsIHBhaXIpIHsKICAgICAgICB2
YXIga2V5ID0gZW5jb2RlVVJJQ29tcG9uZW50KHBhaXIua2V5KSwgdmFsdWVzID0g
cGFpci52YWx1ZTsKCiAgICAgICAgaWYgKHZhbHVlcyAmJiB0eXBlb2YgdmFsdWVz
ID09ICdvYmplY3QnKSB7CiAgICAgICAgICBpZiAoT2JqZWN0LmlzQXJyYXkodmFs
dWVzKSkKICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHMuY29uY2F0KHZhbHVlcy5t
YXAodG9RdWVyeVBhaXIuY3Vycnkoa2V5KSkpOwogICAgICAgIH0gZWxzZSByZXN1
bHRzLnB1c2godG9RdWVyeVBhaXIoa2V5LCB2YWx1ZXMpKTsKICAgICAgICByZXR1
cm4gcmVzdWx0czsKICAgICAgfSkuam9pbignJicpOwogICAgfSwKCiAgICBpbnNw
ZWN0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuICcjPEhhc2g6eycgKyB0aGlz
Lm1hcChmdW5jdGlvbihwYWlyKSB7CiAgICAgICAgcmV0dXJuIHBhaXIubWFwKE9i
amVjdC5pbnNwZWN0KS5qb2luKCc6ICcpOwogICAgICB9KS5qb2luKCcsICcpICsg
J30+JzsKICAgIH0sCgogICAgdG9KU09OOiBmdW5jdGlvbigpIHsKICAgICAgcmV0
dXJuIE9iamVjdC50b0pTT04odGhpcy50b09iamVjdCgpKTsKICAgIH0sCgogICAg
Y2xvbmU6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gbmV3IEhhc2godGhpcyk7
CiAgICB9CiAgfQp9KSgpKTsKCkhhc2gucHJvdG90eXBlLnRvVGVtcGxhdGVSZXBs
YWNlbWVudHMgPSBIYXNoLnByb3RvdHlwZS50b09iamVjdDsKSGFzaC5mcm9tID0g
JEg7CnZhciBPYmplY3RSYW5nZSA9IENsYXNzLmNyZWF0ZShFbnVtZXJhYmxlLCB7
CiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oc3RhcnQsIGVuZCwgZXhjbHVzaXZlKSB7
CiAgICB0aGlzLnN0YXJ0ID0gc3RhcnQ7CiAgICB0aGlzLmVuZCA9IGVuZDsKICAg
IHRoaXMuZXhjbHVzaXZlID0gZXhjbHVzaXZlOwogIH0sCgogIF9lYWNoOiBmdW5j
dGlvbihpdGVyYXRvcikgewogICAgdmFyIHZhbHVlID0gdGhpcy5zdGFydDsKICAg
IHdoaWxlICh0aGlzLmluY2x1ZGUodmFsdWUpKSB7CiAgICAgIGl0ZXJhdG9yKHZh
bHVlKTsKICAgICAgdmFsdWUgPSB2YWx1ZS5zdWNjKCk7CiAgICB9CiAgfSwKCiAg
aW5jbHVkZTogZnVuY3Rpb24odmFsdWUpIHsKICAgIGlmICh2YWx1ZSA8IHRoaXMu
c3RhcnQpCiAgICAgIHJldHVybiBmYWxzZTsKICAgIGlmICh0aGlzLmV4Y2x1c2l2
ZSkKICAgICAgcmV0dXJuIHZhbHVlIDwgdGhpcy5lbmQ7CiAgICByZXR1cm4gdmFs
dWUgPD0gdGhpcy5lbmQ7CiAgfQp9KTsKCnZhciAkUiA9IGZ1bmN0aW9uKHN0YXJ0
LCBlbmQsIGV4Y2x1c2l2ZSkgewogIHJldHVybiBuZXcgT2JqZWN0UmFuZ2Uoc3Rh
cnQsIGVuZCwgZXhjbHVzaXZlKTsKfTsKCnZhciBBamF4ID0gewogIGdldFRyYW5z
cG9ydDogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gVHJ5LnRoZXNlKAogICAgICBm
dW5jdGlvbigpIHtyZXR1cm4gbmV3IFhNTEh0dHBSZXF1ZXN0KCl9LAogICAgICBm
dW5jdGlvbigpIHtyZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoJ01zeG1sMi5YTUxI
VFRQJyl9LAogICAgICBmdW5jdGlvbigpIHtyZXR1cm4gbmV3IEFjdGl2ZVhPYmpl
Y3QoJ01pY3Jvc29mdC5YTUxIVFRQJyl9CiAgICApIHx8IGZhbHNlOwogIH0sCgog
IGFjdGl2ZVJlcXVlc3RDb3VudDogMAp9OwoKQWpheC5SZXNwb25kZXJzID0gewog
IHJlc3BvbmRlcnM6IFtdLAoKICBfZWFjaDogZnVuY3Rpb24oaXRlcmF0b3IpIHsK
ICAgIHRoaXMucmVzcG9uZGVycy5fZWFjaChpdGVyYXRvcik7CiAgfSwKCiAgcmVn
aXN0ZXI6IGZ1bmN0aW9uKHJlc3BvbmRlcikgewogICAgaWYgKCF0aGlzLmluY2x1
ZGUocmVzcG9uZGVyKSkKICAgICAgdGhpcy5yZXNwb25kZXJzLnB1c2gocmVzcG9u
ZGVyKTsKICB9LAoKICB1bnJlZ2lzdGVyOiBmdW5jdGlvbihyZXNwb25kZXIpIHsK
ICAgIHRoaXMucmVzcG9uZGVycyA9IHRoaXMucmVzcG9uZGVycy53aXRob3V0KHJl
c3BvbmRlcik7CiAgfSwKCiAgZGlzcGF0Y2g6IGZ1bmN0aW9uKGNhbGxiYWNrLCBy
ZXF1ZXN0LCB0cmFuc3BvcnQsIGpzb24pIHsKICAgIHRoaXMuZWFjaChmdW5jdGlv
bihyZXNwb25kZXIpIHsKICAgICAgaWYgKE9iamVjdC5pc0Z1bmN0aW9uKHJlc3Bv
bmRlcltjYWxsYmFja10pKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHJlc3Bv
bmRlcltjYWxsYmFja10uYXBwbHkocmVzcG9uZGVyLCBbcmVxdWVzdCwgdHJhbnNw
b3J0LCBqc29uXSk7CiAgICAgICAgfSBjYXRjaCAoZSkgeyB9CiAgICAgIH0KICAg
IH0pOwogIH0KfTsKCk9iamVjdC5leHRlbmQoQWpheC5SZXNwb25kZXJzLCBFbnVt
ZXJhYmxlKTsKCkFqYXguUmVzcG9uZGVycy5yZWdpc3Rlcih7CiAgb25DcmVhdGU6
ICAgZnVuY3Rpb24oKSB7IEFqYXguYWN0aXZlUmVxdWVzdENvdW50KysgfSwKICBv
bkNvbXBsZXRlOiBmdW5jdGlvbigpIHsgQWpheC5hY3RpdmVSZXF1ZXN0Q291bnQt
LSB9Cn0pOwoKQWpheC5CYXNlID0gQ2xhc3MuY3JlYXRlKHsKICBpbml0aWFsaXpl
OiBmdW5jdGlvbihvcHRpb25zKSB7CiAgICB0aGlzLm9wdGlvbnMgPSB7CiAgICAg
IG1ldGhvZDogICAgICAgJ3Bvc3QnLAogICAgICBhc3luY2hyb25vdXM6IHRydWUs
CiAgICAgIGNvbnRlbnRUeXBlOiAgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJs
ZW5jb2RlZCcsCiAgICAgIGVuY29kaW5nOiAgICAgJ1VURi04JywKICAgICAgcGFy
YW1ldGVyczogICAnJywKICAgICAgZXZhbEpTT046ICAgICB0cnVlLAogICAgICBl
dmFsSlM6ICAgICAgIHRydWUKICAgIH07CiAgICBPYmplY3QuZXh0ZW5kKHRoaXMu
b3B0aW9ucywgb3B0aW9ucyB8fCB7IH0pOwoKICAgIHRoaXMub3B0aW9ucy5tZXRo
b2QgPSB0aGlzLm9wdGlvbnMubWV0aG9kLnRvTG93ZXJDYXNlKCk7CgogICAgaWYg
KE9iamVjdC5pc1N0cmluZyh0aGlzLm9wdGlvbnMucGFyYW1ldGVycykpCiAgICAg
IHRoaXMub3B0aW9ucy5wYXJhbWV0ZXJzID0gdGhpcy5vcHRpb25zLnBhcmFtZXRl
cnMudG9RdWVyeVBhcmFtcygpOwogICAgZWxzZSBpZiAoT2JqZWN0LmlzSGFzaCh0
aGlzLm9wdGlvbnMucGFyYW1ldGVycykpCiAgICAgIHRoaXMub3B0aW9ucy5wYXJh
bWV0ZXJzID0gdGhpcy5vcHRpb25zLnBhcmFtZXRlcnMudG9PYmplY3QoKTsKICB9
Cn0pOwoKQWpheC5SZXF1ZXN0ID0gQ2xhc3MuY3JlYXRlKEFqYXguQmFzZSwgewog
IF9jb21wbGV0ZTogZmFsc2UsCgogIGluaXRpYWxpemU6IGZ1bmN0aW9uKCRzdXBl
ciwgdXJsLCBvcHRpb25zKSB7CiAgICAkc3VwZXIob3B0aW9ucyk7CiAgICB0aGlz
LnRyYW5zcG9ydCA9IEFqYXguZ2V0VHJhbnNwb3J0KCk7CiAgICB0aGlzLnJlcXVl
c3QodXJsKTsKICB9LAoKICByZXF1ZXN0OiBmdW5jdGlvbih1cmwpIHsKICAgIHRo
aXMudXJsID0gdXJsOwogICAgdGhpcy5tZXRob2QgPSB0aGlzLm9wdGlvbnMubWV0
aG9kOwogICAgdmFyIHBhcmFtcyA9IE9iamVjdC5jbG9uZSh0aGlzLm9wdGlvbnMu
cGFyYW1ldGVycyk7CgogICAgaWYgKCFbJ2dldCcsICdwb3N0J10uaW5jbHVkZSh0
aGlzLm1ldGhvZCkpIHsKICAgICAgLy8gc2ltdWxhdGUgb3RoZXIgdmVyYnMgb3Zl
ciBwb3N0CiAgICAgIHBhcmFtc1snX21ldGhvZCddID0gdGhpcy5tZXRob2Q7CiAg
ICAgIHRoaXMubWV0aG9kID0gJ3Bvc3QnOwogICAgfQoKICAgIHRoaXMucGFyYW1l
dGVycyA9IHBhcmFtczsKCiAgICBpZiAocGFyYW1zID0gT2JqZWN0LnRvUXVlcnlT
dHJpbmcocGFyYW1zKSkgewogICAgICAvLyB3aGVuIEdFVCwgYXBwZW5kIHBhcmFt
ZXRlcnMgdG8gVVJMCiAgICAgIGlmICh0aGlzLm1ldGhvZCA9PSAnZ2V0JykKICAg
ICAgICB0aGlzLnVybCArPSAodGhpcy51cmwuaW5jbHVkZSgnPycpID8gJyYnIDog
Jz8nKSArIHBhcmFtczsKICAgICAgZWxzZSBpZiAoL0tvbnF1ZXJvcnxTYWZhcml8
S0hUTUwvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpCiAgICAgICAgcGFyYW1z
ICs9ICcmXz0nOwogICAgfQoKICAgIHRyeSB7CiAgICAgIHZhciByZXNwb25zZSA9
IG5ldyBBamF4LlJlc3BvbnNlKHRoaXMpOwogICAgICBpZiAodGhpcy5vcHRpb25z
Lm9uQ3JlYXRlKSB0aGlzLm9wdGlvbnMub25DcmVhdGUocmVzcG9uc2UpOwogICAg
ICBBamF4LlJlc3BvbmRlcnMuZGlzcGF0Y2goJ29uQ3JlYXRlJywgdGhpcywgcmVz
cG9uc2UpOwoKICAgICAgdGhpcy50cmFuc3BvcnQub3Blbih0aGlzLm1ldGhvZC50
b1VwcGVyQ2FzZSgpLCB0aGlzLnVybCwKICAgICAgICB0aGlzLm9wdGlvbnMuYXN5
bmNocm9ub3VzKTsKCiAgICAgIGlmICh0aGlzLm9wdGlvbnMuYXN5bmNocm9ub3Vz
KSB0aGlzLnJlc3BvbmRUb1JlYWR5U3RhdGUuYmluZCh0aGlzKS5kZWZlcigxKTsK
CiAgICAgIHRoaXMudHJhbnNwb3J0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IHRoaXMu
b25TdGF0ZUNoYW5nZS5iaW5kKHRoaXMpOwogICAgICB0aGlzLnNldFJlcXVlc3RI
ZWFkZXJzKCk7CgogICAgICB0aGlzLmJvZHkgPSB0aGlzLm1ldGhvZCA9PSAncG9z
dCcgPyAodGhpcy5vcHRpb25zLnBvc3RCb2R5IHx8IHBhcmFtcykgOiBudWxsOwog
ICAgICB0aGlzLnRyYW5zcG9ydC5zZW5kKHRoaXMuYm9keSk7CgogICAgICAvKiBG
b3JjZSBGaXJlZm94IHRvIGhhbmRsZSByZWFkeSBzdGF0ZSA0IGZvciBzeW5jaHJv
bm91cyByZXF1ZXN0cyAqLwogICAgICBpZiAoIXRoaXMub3B0aW9ucy5hc3luY2hy
b25vdXMgJiYgdGhpcy50cmFuc3BvcnQub3ZlcnJpZGVNaW1lVHlwZSkKICAgICAg
ICB0aGlzLm9uU3RhdGVDaGFuZ2UoKTsKCiAgICB9CiAgICBjYXRjaCAoZSkgewog
ICAgICB0aGlzLmRpc3BhdGNoRXhjZXB0aW9uKGUpOwogICAgfQogIH0sCgogIG9u
U3RhdGVDaGFuZ2U6IGZ1bmN0aW9uKCkgewogICAgdmFyIHJlYWR5U3RhdGUgPSB0
aGlzLnRyYW5zcG9ydC5yZWFkeVN0YXRlOwogICAgaWYgKHJlYWR5U3RhdGUgPiAx
ICYmICEoKHJlYWR5U3RhdGUgPT0gNCkgJiYgdGhpcy5fY29tcGxldGUpKQogICAg
ICB0aGlzLnJlc3BvbmRUb1JlYWR5U3RhdGUodGhpcy50cmFuc3BvcnQucmVhZHlT
dGF0ZSk7CiAgfSwKCiAgc2V0UmVxdWVzdEhlYWRlcnM6IGZ1bmN0aW9uKCkgewog
ICAgdmFyIGhlYWRlcnMgPSB7CiAgICAgICdYLVJlcXVlc3RlZC1XaXRoJzogJ1hN
TEh0dHBSZXF1ZXN0JywKICAgICAgJ1gtUHJvdG90eXBlLVZlcnNpb24nOiBQcm90
b3R5cGUuVmVyc2lvbiwKICAgICAgJ0FjY2VwdCc6ICd0ZXh0L2phdmFzY3JpcHQs
IHRleHQvaHRtbCwgYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCwgKi8qJwogICAg
fTsKCiAgICBpZiAodGhpcy5tZXRob2QgPT0gJ3Bvc3QnKSB7CiAgICAgIGhlYWRl
cnNbJ0NvbnRlbnQtdHlwZSddID0gdGhpcy5vcHRpb25zLmNvbnRlbnRUeXBlICsK
ICAgICAgICAodGhpcy5vcHRpb25zLmVuY29kaW5nID8gJzsgY2hhcnNldD0nICsg
dGhpcy5vcHRpb25zLmVuY29kaW5nIDogJycpOwoKICAgICAgLyogRm9yY2UgIkNv
bm5lY3Rpb246IGNsb3NlIiBmb3Igb2xkZXIgTW96aWxsYSBicm93c2VycyB0byB3
b3JrCiAgICAgICAqIGFyb3VuZCBhIGJ1ZyB3aGVyZSBYTUxIdHRwUmVxdWVzdCBz
ZW5kcyBhbiBpbmNvcnJlY3QKICAgICAgICogQ29udGVudC1sZW5ndGggaGVhZGVy
LiBTZWUgTW96aWxsYSBCdWd6aWxsYSAjMjQ2NjUxLgogICAgICAgKi8KICAgICAg
aWYgKHRoaXMudHJhbnNwb3J0Lm92ZXJyaWRlTWltZVR5cGUgJiYKICAgICAgICAg
IChuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9HZWNrb1wvKFxkezR9KS8pIHx8
IFswLDIwMDVdKVsxXSA8IDIwMDUpCiAgICAgICAgICAgIGhlYWRlcnNbJ0Nvbm5l
Y3Rpb24nXSA9ICdjbG9zZSc7CiAgICB9CgogICAgLy8gdXNlci1kZWZpbmVkIGhl
YWRlcnMKICAgIGlmICh0eXBlb2YgdGhpcy5vcHRpb25zLnJlcXVlc3RIZWFkZXJz
ID09ICdvYmplY3QnKSB7CiAgICAgIHZhciBleHRyYXMgPSB0aGlzLm9wdGlvbnMu
cmVxdWVzdEhlYWRlcnM7CgogICAgICBpZiAoT2JqZWN0LmlzRnVuY3Rpb24oZXh0
cmFzLnB1c2gpKQogICAgICAgIGZvciAodmFyIGkgPSAwLCBsZW5ndGggPSBleHRy
YXMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpICs9IDIpCiAgICAgICAgICBoZWFkZXJz
W2V4dHJhc1tpXV0gPSBleHRyYXNbaSsxXTsKICAgICAgZWxzZQogICAgICAgICRI
KGV4dHJhcykuZWFjaChmdW5jdGlvbihwYWlyKSB7IGhlYWRlcnNbcGFpci5rZXld
ID0gcGFpci52YWx1ZSB9KTsKICAgIH0KCiAgICBmb3IgKHZhciBuYW1lIGluIGhl
YWRlcnMpCiAgICAgIHRoaXMudHJhbnNwb3J0LnNldFJlcXVlc3RIZWFkZXIobmFt
ZSwgaGVhZGVyc1tuYW1lXSk7CiAgfSwKCiAgc3VjY2VzczogZnVuY3Rpb24oKSB7
CiAgICB2YXIgc3RhdHVzID0gdGhpcy5nZXRTdGF0dXMoKTsKICAgIHJldHVybiAh
c3RhdHVzIHx8IChzdGF0dXMgPj0gMjAwICYmIHN0YXR1cyA8IDMwMCk7CiAgfSwK
CiAgZ2V0U3RhdHVzOiBmdW5jdGlvbigpIHsKICAgIHRyeSB7CiAgICAgIHJldHVy
biB0aGlzLnRyYW5zcG9ydC5zdGF0dXMgfHwgMDsKICAgIH0gY2F0Y2ggKGUpIHsg
cmV0dXJuIDAgfQogIH0sCgogIHJlc3BvbmRUb1JlYWR5U3RhdGU6IGZ1bmN0aW9u
KHJlYWR5U3RhdGUpIHsKICAgIHZhciBzdGF0ZSA9IEFqYXguUmVxdWVzdC5FdmVu
dHNbcmVhZHlTdGF0ZV0sIHJlc3BvbnNlID0gbmV3IEFqYXguUmVzcG9uc2UodGhp
cyk7CgogICAgaWYgKHN0YXRlID09ICdDb21wbGV0ZScpIHsKICAgICAgdHJ5IHsK
ICAgICAgICB0aGlzLl9jb21wbGV0ZSA9IHRydWU7CiAgICAgICAgKHRoaXMub3B0
aW9uc1snb24nICsgcmVzcG9uc2Uuc3RhdHVzXQogICAgICAgICB8fCB0aGlzLm9w
dGlvbnNbJ29uJyArICh0aGlzLnN1Y2Nlc3MoKSA/ICdTdWNjZXNzJyA6ICdGYWls
dXJlJyldCiAgICAgICAgIHx8IFByb3RvdHlwZS5lbXB0eUZ1bmN0aW9uKShyZXNw
b25zZSwgcmVzcG9uc2UuaGVhZGVySlNPTik7CiAgICAgIH0gY2F0Y2ggKGUpIHsK
ICAgICAgICB0aGlzLmRpc3BhdGNoRXhjZXB0aW9uKGUpOwogICAgICB9CgogICAg
ICB2YXIgY29udGVudFR5cGUgPSByZXNwb25zZS5nZXRIZWFkZXIoJ0NvbnRlbnQt
dHlwZScpOwogICAgICBpZiAodGhpcy5vcHRpb25zLmV2YWxKUyA9PSAnZm9yY2Un
CiAgICAgICAgICB8fCAodGhpcy5vcHRpb25zLmV2YWxKUyAmJiB0aGlzLmlzU2Ft
ZU9yaWdpbigpICYmIGNvbnRlbnRUeXBlCiAgICAgICAgICAmJiBjb250ZW50VHlw
ZS5tYXRjaCgvXlxzKih0ZXh0fGFwcGxpY2F0aW9uKVwvKHgtKT8oamF2YXxlY21h
KXNjcmlwdCg7LiopP1xzKiQvaSkpKQogICAgICAgIHRoaXMuZXZhbFJlc3BvbnNl
KCk7CiAgICB9CgogICAgdHJ5IHsKICAgICAgKHRoaXMub3B0aW9uc1snb24nICsg
c3RhdGVdIHx8IFByb3RvdHlwZS5lbXB0eUZ1bmN0aW9uKShyZXNwb25zZSwgcmVz
cG9uc2UuaGVhZGVySlNPTik7CiAgICAgIEFqYXguUmVzcG9uZGVycy5kaXNwYXRj
aCgnb24nICsgc3RhdGUsIHRoaXMsIHJlc3BvbnNlLCByZXNwb25zZS5oZWFkZXJK
U09OKTsKICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgdGhpcy5kaXNwYXRjaEV4Y2Vw
dGlvbihlKTsKICAgIH0KCiAgICBpZiAoc3RhdGUgPT0gJ0NvbXBsZXRlJykgewog
ICAgICAvLyBhdm9pZCBtZW1vcnkgbGVhayBpbiBNU0lFOiBjbGVhbiB1cAogICAg
ICB0aGlzLnRyYW5zcG9ydC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBQcm90b3R5cGUu
ZW1wdHlGdW5jdGlvbjsKICAgIH0KICB9LAoKICBpc1NhbWVPcmlnaW46IGZ1bmN0
aW9uKCkgewogICAgdmFyIG0gPSB0aGlzLnVybC5tYXRjaCgvXlxzKmh0dHBzPzpc
L1wvW15cL10qLyk7CiAgICByZXR1cm4gIW0gfHwgKG1bMF0gPT0gJyN7cHJvdG9j
b2x9Ly8je2RvbWFpbn0je3BvcnR9Jy5pbnRlcnBvbGF0ZSh7CiAgICAgIHByb3Rv
Y29sOiBsb2NhdGlvbi5wcm90b2NvbCwKICAgICAgZG9tYWluOiBkb2N1bWVudC5k
b21haW4sCiAgICAgIHBvcnQ6IGxvY2F0aW9uLnBvcnQgPyAnOicgKyBsb2NhdGlv
bi5wb3J0IDogJycKICAgIH0pKTsKICB9LAoKICBnZXRIZWFkZXI6IGZ1bmN0aW9u
KG5hbWUpIHsKICAgIHRyeSB7CiAgICAgIHJldHVybiB0aGlzLnRyYW5zcG9ydC5n
ZXRSZXNwb25zZUhlYWRlcihuYW1lKSB8fCBudWxsOwogICAgfSBjYXRjaCAoZSkg
eyByZXR1cm4gbnVsbCB9CiAgfSwKCiAgZXZhbFJlc3BvbnNlOiBmdW5jdGlvbigp
IHsKICAgIHRyeSB7CiAgICAgIHJldHVybiBldmFsKCh0aGlzLnRyYW5zcG9ydC5y
ZXNwb25zZVRleHQgfHwgJycpLnVuZmlsdGVySlNPTigpKTsKICAgIH0gY2F0Y2gg
KGUpIHsKICAgICAgdGhpcy5kaXNwYXRjaEV4Y2VwdGlvbihlKTsKICAgIH0KICB9
LAoKICBkaXNwYXRjaEV4Y2VwdGlvbjogZnVuY3Rpb24oZXhjZXB0aW9uKSB7CiAg
ICAodGhpcy5vcHRpb25zLm9uRXhjZXB0aW9uIHx8IFByb3RvdHlwZS5lbXB0eUZ1
bmN0aW9uKSh0aGlzLCBleGNlcHRpb24pOwogICAgQWpheC5SZXNwb25kZXJzLmRp
c3BhdGNoKCdvbkV4Y2VwdGlvbicsIHRoaXMsIGV4Y2VwdGlvbik7CiAgfQp9KTsK
CkFqYXguUmVxdWVzdC5FdmVudHMgPQogIFsnVW5pbml0aWFsaXplZCcsICdMb2Fk
aW5nJywgJ0xvYWRlZCcsICdJbnRlcmFjdGl2ZScsICdDb21wbGV0ZSddOwoKQWph
eC5SZXNwb25zZSA9IENsYXNzLmNyZWF0ZSh7CiAgaW5pdGlhbGl6ZTogZnVuY3Rp
b24ocmVxdWVzdCl7CiAgICB0aGlzLnJlcXVlc3QgPSByZXF1ZXN0OwogICAgdmFy
IHRyYW5zcG9ydCAgPSB0aGlzLnRyYW5zcG9ydCAgPSByZXF1ZXN0LnRyYW5zcG9y
dCwKICAgICAgICByZWFkeVN0YXRlID0gdGhpcy5yZWFkeVN0YXRlID0gdHJhbnNw
b3J0LnJlYWR5U3RhdGU7CgogICAgaWYoKHJlYWR5U3RhdGUgPiAyICYmICFQcm90
b3R5cGUuQnJvd3Nlci5JRSkgfHwgcmVhZHlTdGF0ZSA9PSA0KSB7CiAgICAgIHRo
aXMuc3RhdHVzICAgICAgID0gdGhpcy5nZXRTdGF0dXMoKTsKICAgICAgdGhpcy5z
dGF0dXNUZXh0ICAgPSB0aGlzLmdldFN0YXR1c1RleHQoKTsKICAgICAgdGhpcy5y
ZXNwb25zZVRleHQgPSBTdHJpbmcuaW50ZXJwcmV0KHRyYW5zcG9ydC5yZXNwb25z
ZVRleHQpOwogICAgICB0aGlzLmhlYWRlckpTT04gICA9IHRoaXMuX2dldEhlYWRl
ckpTT04oKTsKICAgIH0KCiAgICBpZihyZWFkeVN0YXRlID09IDQpIHsKICAgICAg
dmFyIHhtbCA9IHRyYW5zcG9ydC5yZXNwb25zZVhNTDsKICAgICAgdGhpcy5yZXNw
b25zZVhNTCAgPSBPYmplY3QuaXNVbmRlZmluZWQoeG1sKSA/IG51bGwgOiB4bWw7
CiAgICAgIHRoaXMucmVzcG9uc2VKU09OID0gdGhpcy5fZ2V0UmVzcG9uc2VKU09O
KCk7CiAgICB9CiAgfSwKCiAgc3RhdHVzOiAgICAgIDAsCiAgc3RhdHVzVGV4dDog
JycsCgogIGdldFN0YXR1czogQWpheC5SZXF1ZXN0LnByb3RvdHlwZS5nZXRTdGF0
dXMsCgogIGdldFN0YXR1c1RleHQ6IGZ1bmN0aW9uKCkgewogICAgdHJ5IHsKICAg
ICAgcmV0dXJuIHRoaXMudHJhbnNwb3J0LnN0YXR1c1RleHQgfHwgJyc7CiAgICB9
IGNhdGNoIChlKSB7IHJldHVybiAnJyB9CiAgfSwKCiAgZ2V0SGVhZGVyOiBBamF4
LlJlcXVlc3QucHJvdG90eXBlLmdldEhlYWRlciwKCiAgZ2V0QWxsSGVhZGVyczog
ZnVuY3Rpb24oKSB7CiAgICB0cnkgewogICAgICByZXR1cm4gdGhpcy5nZXRBbGxS
ZXNwb25zZUhlYWRlcnMoKTsKICAgIH0gY2F0Y2ggKGUpIHsgcmV0dXJuIG51bGwg
fQogIH0sCgogIGdldFJlc3BvbnNlSGVhZGVyOiBmdW5jdGlvbihuYW1lKSB7CiAg
ICByZXR1cm4gdGhpcy50cmFuc3BvcnQuZ2V0UmVzcG9uc2VIZWFkZXIobmFtZSk7
CiAgfSwKCiAgZ2V0QWxsUmVzcG9uc2VIZWFkZXJzOiBmdW5jdGlvbigpIHsKICAg
IHJldHVybiB0aGlzLnRyYW5zcG9ydC5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKTsK
ICB9LAoKICBfZ2V0SGVhZGVySlNPTjogZnVuY3Rpb24oKSB7CiAgICB2YXIganNv
biA9IHRoaXMuZ2V0SGVhZGVyKCdYLUpTT04nKTsKICAgIGlmICghanNvbikgcmV0
dXJuIG51bGw7CiAgICBqc29uID0gZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZShq
c29uKSk7CiAgICB0cnkgewogICAgICByZXR1cm4ganNvbi5ldmFsSlNPTih0aGlz
LnJlcXVlc3Qub3B0aW9ucy5zYW5pdGl6ZUpTT04gfHwKICAgICAgICAhdGhpcy5y
ZXF1ZXN0LmlzU2FtZU9yaWdpbigpKTsKICAgIH0gY2F0Y2ggKGUpIHsKICAgICAg
dGhpcy5yZXF1ZXN0LmRpc3BhdGNoRXhjZXB0aW9uKGUpOwogICAgfQogIH0sCgog
IF9nZXRSZXNwb25zZUpTT046IGZ1bmN0aW9uKCkgewogICAgdmFyIG9wdGlvbnMg
PSB0aGlzLnJlcXVlc3Qub3B0aW9uczsKICAgIGlmICghb3B0aW9ucy5ldmFsSlNP
TiB8fCAob3B0aW9ucy5ldmFsSlNPTiAhPSAnZm9yY2UnICYmCiAgICAgICEodGhp
cy5nZXRIZWFkZXIoJ0NvbnRlbnQtdHlwZScpIHx8ICcnKS5pbmNsdWRlKCdhcHBs
aWNhdGlvbi9qc29uJykpIHx8CiAgICAgICAgdGhpcy5yZXNwb25zZVRleHQuYmxh
bmsoKSkKICAgICAgICAgIHJldHVybiBudWxsOwogICAgdHJ5IHsKICAgICAgcmV0
dXJuIHRoaXMucmVzcG9uc2VUZXh0LmV2YWxKU09OKG9wdGlvbnMuc2FuaXRpemVK
U09OIHx8CiAgICAgICAgIXRoaXMucmVxdWVzdC5pc1NhbWVPcmlnaW4oKSk7CiAg
ICB9IGNhdGNoIChlKSB7CiAgICAgIHRoaXMucmVxdWVzdC5kaXNwYXRjaEV4Y2Vw
dGlvbihlKTsKICAgIH0KICB9Cn0pOwoKQWpheC5VcGRhdGVyID0gQ2xhc3MuY3Jl
YXRlKEFqYXguUmVxdWVzdCwgewogIGluaXRpYWxpemU6IGZ1bmN0aW9uKCRzdXBl
ciwgY29udGFpbmVyLCB1cmwsIG9wdGlvbnMpIHsKICAgIHRoaXMuY29udGFpbmVy
ID0gewogICAgICBzdWNjZXNzOiAoY29udGFpbmVyLnN1Y2Nlc3MgfHwgY29udGFp
bmVyKSwKICAgICAgZmFpbHVyZTogKGNvbnRhaW5lci5mYWlsdXJlIHx8IChjb250
YWluZXIuc3VjY2VzcyA/IG51bGwgOiBjb250YWluZXIpKQogICAgfTsKCiAgICBv
cHRpb25zID0gT2JqZWN0LmNsb25lKG9wdGlvbnMpOwogICAgdmFyIG9uQ29tcGxl
dGUgPSBvcHRpb25zLm9uQ29tcGxldGU7CiAgICBvcHRpb25zLm9uQ29tcGxldGUg
PSAoZnVuY3Rpb24ocmVzcG9uc2UsIGpzb24pIHsKICAgICAgdGhpcy51cGRhdGVD
b250ZW50KHJlc3BvbnNlLnJlc3BvbnNlVGV4dCk7CiAgICAgIGlmIChPYmplY3Qu
aXNGdW5jdGlvbihvbkNvbXBsZXRlKSkgb25Db21wbGV0ZShyZXNwb25zZSwganNv
bik7CiAgICB9KS5iaW5kKHRoaXMpOwoKICAgICRzdXBlcih1cmwsIG9wdGlvbnMp
OwogIH0sCgogIHVwZGF0ZUNvbnRlbnQ6IGZ1bmN0aW9uKHJlc3BvbnNlVGV4dCkg
ewogICAgdmFyIHJlY2VpdmVyID0gdGhpcy5jb250YWluZXJbdGhpcy5zdWNjZXNz
KCkgPyAnc3VjY2VzcycgOiAnZmFpbHVyZSddLAogICAgICAgIG9wdGlvbnMgPSB0
aGlzLm9wdGlvbnM7CgogICAgaWYgKCFvcHRpb25zLmV2YWxTY3JpcHRzKSByZXNw
b25zZVRleHQgPSByZXNwb25zZVRleHQuc3RyaXBTY3JpcHRzKCk7CgogICAgaWYg
KHJlY2VpdmVyID0gJChyZWNlaXZlcikpIHsKICAgICAgaWYgKG9wdGlvbnMuaW5z
ZXJ0aW9uKSB7CiAgICAgICAgaWYgKE9iamVjdC5pc1N0cmluZyhvcHRpb25zLmlu
c2VydGlvbikpIHsKICAgICAgICAgIHZhciBpbnNlcnRpb24gPSB7IH07IGluc2Vy
dGlvbltvcHRpb25zLmluc2VydGlvbl0gPSByZXNwb25zZVRleHQ7CiAgICAgICAg
ICByZWNlaXZlci5pbnNlcnQoaW5zZXJ0aW9uKTsKICAgICAgICB9CiAgICAgICAg
ZWxzZSBvcHRpb25zLmluc2VydGlvbihyZWNlaXZlciwgcmVzcG9uc2VUZXh0KTsK
ICAgICAgfQogICAgICBlbHNlIHJlY2VpdmVyLnVwZGF0ZShyZXNwb25zZVRleHQp
OwogICAgfQogIH0KfSk7CgpBamF4LlBlcmlvZGljYWxVcGRhdGVyID0gQ2xhc3Mu
Y3JlYXRlKEFqYXguQmFzZSwgewogIGluaXRpYWxpemU6IGZ1bmN0aW9uKCRzdXBl
ciwgY29udGFpbmVyLCB1cmwsIG9wdGlvbnMpIHsKICAgICRzdXBlcihvcHRpb25z
KTsKICAgIHRoaXMub25Db21wbGV0ZSA9IHRoaXMub3B0aW9ucy5vbkNvbXBsZXRl
OwoKICAgIHRoaXMuZnJlcXVlbmN5ID0gKHRoaXMub3B0aW9ucy5mcmVxdWVuY3kg
fHwgMik7CiAgICB0aGlzLmRlY2F5ID0gKHRoaXMub3B0aW9ucy5kZWNheSB8fCAx
KTsKCiAgICB0aGlzLnVwZGF0ZXIgPSB7IH07CiAgICB0aGlzLmNvbnRhaW5lciA9
IGNvbnRhaW5lcjsKICAgIHRoaXMudXJsID0gdXJsOwoKICAgIHRoaXMuc3RhcnQo
KTsKICB9LAoKICBzdGFydDogZnVuY3Rpb24oKSB7CiAgICB0aGlzLm9wdGlvbnMu
b25Db21wbGV0ZSA9IHRoaXMudXBkYXRlQ29tcGxldGUuYmluZCh0aGlzKTsKICAg
IHRoaXMub25UaW1lckV2ZW50KCk7CiAgfSwKCiAgc3RvcDogZnVuY3Rpb24oKSB7
CiAgICB0aGlzLnVwZGF0ZXIub3B0aW9ucy5vbkNvbXBsZXRlID0gdW5kZWZpbmVk
OwogICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpOwogICAgKHRoaXMub25Db21w
bGV0ZSB8fCBQcm90b3R5cGUuZW1wdHlGdW5jdGlvbikuYXBwbHkodGhpcywgYXJn
dW1lbnRzKTsKICB9LAoKICB1cGRhdGVDb21wbGV0ZTogZnVuY3Rpb24ocmVzcG9u
c2UpIHsKICAgIGlmICh0aGlzLm9wdGlvbnMuZGVjYXkpIHsKICAgICAgdGhpcy5k
ZWNheSA9IChyZXNwb25zZS5yZXNwb25zZVRleHQgPT0gdGhpcy5sYXN0VGV4dCA/
CiAgICAgICAgdGhpcy5kZWNheSAqIHRoaXMub3B0aW9ucy5kZWNheSA6IDEpOwoK
ICAgICAgdGhpcy5sYXN0VGV4dCA9IHJlc3BvbnNlLnJlc3BvbnNlVGV4dDsKICAg
IH0KICAgIHRoaXMudGltZXIgPSB0aGlzLm9uVGltZXJFdmVudC5iaW5kKHRoaXMp
LmRlbGF5KHRoaXMuZGVjYXkgKiB0aGlzLmZyZXF1ZW5jeSk7CiAgfSwKCiAgb25U
aW1lckV2ZW50OiBmdW5jdGlvbigpIHsKICAgIHRoaXMudXBkYXRlciA9IG5ldyBB
amF4LlVwZGF0ZXIodGhpcy5jb250YWluZXIsIHRoaXMudXJsLCB0aGlzLm9wdGlv
bnMpOwogIH0KfSk7CmZ1bmN0aW9uICQoZWxlbWVudCkgewogIGlmIChhcmd1bWVu
dHMubGVuZ3RoID4gMSkgewogICAgZm9yICh2YXIgaSA9IDAsIGVsZW1lbnRzID0g
W10sIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKykK
ICAgICAgZWxlbWVudHMucHVzaCgkKGFyZ3VtZW50c1tpXSkpOwogICAgcmV0dXJu
IGVsZW1lbnRzOwogIH0KICBpZiAoT2JqZWN0LmlzU3RyaW5nKGVsZW1lbnQpKQog
ICAgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnQpOwog
IHJldHVybiBFbGVtZW50LmV4dGVuZChlbGVtZW50KTsKfQoKaWYgKFByb3RvdHlw
ZS5Ccm93c2VyRmVhdHVyZXMuWFBhdGgpIHsKICBkb2N1bWVudC5fZ2V0RWxlbWVu
dHNCeVhQYXRoID0gZnVuY3Rpb24oZXhwcmVzc2lvbiwgcGFyZW50RWxlbWVudCkg
ewogICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgIHZhciBxdWVyeSA9IGRvY3VtZW50
LmV2YWx1YXRlKGV4cHJlc3Npb24sICQocGFyZW50RWxlbWVudCkgfHwgZG9jdW1l
bnQsCiAgICAgIG51bGwsIFhQYXRoUmVzdWx0Lk9SREVSRURfTk9ERV9TTkFQU0hP
VF9UWVBFLCBudWxsKTsKICAgIGZvciAodmFyIGkgPSAwLCBsZW5ndGggPSBxdWVy
eS5zbmFwc2hvdExlbmd0aDsgaSA8IGxlbmd0aDsgaSsrKQogICAgICByZXN1bHRz
LnB1c2goRWxlbWVudC5leHRlbmQocXVlcnkuc25hcHNob3RJdGVtKGkpKSk7CiAg
ICByZXR1cm4gcmVzdWx0czsKICB9Owp9CgovKi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKi8KCmlmICghd2luZG93Lk5vZGUpIHZhciBOb2RlID0geyB9OwoKaWYg
KCFOb2RlLkVMRU1FTlRfTk9ERSkgewogIC8vIERPTSBsZXZlbCAyIEVDTUFTY3Jp
cHQgTGFuZ3VhZ2UgQmluZGluZwogIE9iamVjdC5leHRlbmQoTm9kZSwgewogICAg
RUxFTUVOVF9OT0RFOiAxLAogICAgQVRUUklCVVRFX05PREU6IDIsCiAgICBURVhU
X05PREU6IDMsCiAgICBDREFUQV9TRUNUSU9OX05PREU6IDQsCiAgICBFTlRJVFlf
UkVGRVJFTkNFX05PREU6IDUsCiAgICBFTlRJVFlfTk9ERTogNiwKICAgIFBST0NF
U1NJTkdfSU5TVFJVQ1RJT05fTk9ERTogNywKICAgIENPTU1FTlRfTk9ERTogOCwK
ICAgIERPQ1VNRU5UX05PREU6IDksCiAgICBET0NVTUVOVF9UWVBFX05PREU6IDEw
LAogICAgRE9DVU1FTlRfRlJBR01FTlRfTk9ERTogMTEsCiAgICBOT1RBVElPTl9O
T0RFOiAxMgogIH0pOwp9CgooZnVuY3Rpb24oKSB7CiAgdmFyIGVsZW1lbnQgPSB0
aGlzLkVsZW1lbnQ7CiAgdGhpcy5FbGVtZW50ID0gZnVuY3Rpb24odGFnTmFtZSwg
YXR0cmlidXRlcykgewogICAgYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXMgfHwgeyB9
OwogICAgdGFnTmFtZSA9IHRhZ05hbWUudG9Mb3dlckNhc2UoKTsKICAgIHZhciBj
YWNoZSA9IEVsZW1lbnQuY2FjaGU7CiAgICBpZiAoUHJvdG90eXBlLkJyb3dzZXIu
SUUgJiYgYXR0cmlidXRlcy5uYW1lKSB7CiAgICAgIHRhZ05hbWUgPSAnPCcgKyB0
YWdOYW1lICsgJyBuYW1lPSInICsgYXR0cmlidXRlcy5uYW1lICsgJyI+JzsKICAg
ICAgZGVsZXRlIGF0dHJpYnV0ZXMubmFtZTsKICAgICAgcmV0dXJuIEVsZW1lbnQu
d3JpdGVBdHRyaWJ1dGUoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWdOYW1lKSwg
YXR0cmlidXRlcyk7CiAgICB9CiAgICBpZiAoIWNhY2hlW3RhZ05hbWVdKSBjYWNo
ZVt0YWdOYW1lXSA9IEVsZW1lbnQuZXh0ZW5kKGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQodGFnTmFtZSkpOwogICAgcmV0dXJuIEVsZW1lbnQud3JpdGVBdHRyaWJ1dGUo
Y2FjaGVbdGFnTmFtZV0uY2xvbmVOb2RlKGZhbHNlKSwgYXR0cmlidXRlcyk7CiAg
fTsKICBPYmplY3QuZXh0ZW5kKHRoaXMuRWxlbWVudCwgZWxlbWVudCB8fCB7IH0p
OwogIGlmIChlbGVtZW50KSB0aGlzLkVsZW1lbnQucHJvdG90eXBlID0gZWxlbWVu
dC5wcm90b3R5cGU7Cn0pLmNhbGwod2luZG93KTsKCkVsZW1lbnQuY2FjaGUgPSB7
IH07CgpFbGVtZW50Lk1ldGhvZHMgPSB7CiAgdmlzaWJsZTogZnVuY3Rpb24oZWxl
bWVudCkgewogICAgcmV0dXJuICQoZWxlbWVudCkuc3R5bGUuZGlzcGxheSAhPSAn
bm9uZSc7CiAgfSwKCiAgdG9nZ2xlOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBl
bGVtZW50ID0gJChlbGVtZW50KTsKICAgIEVsZW1lbnRbRWxlbWVudC52aXNpYmxl
KGVsZW1lbnQpID8gJ2hpZGUnIDogJ3Nob3cnXShlbGVtZW50KTsKICAgIHJldHVy
biBlbGVtZW50OwogIH0sCgogIGhpZGU6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAg
IGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgZWxlbWVudC5zdHlsZS5kaXNwbGF5
ID0gJ25vbmUnOwogICAgcmV0dXJuIGVsZW1lbnQ7CiAgfSwKCiAgc2hvdzogZnVu
Y3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICBl
bGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnJzsKICAgIHJldHVybiBlbGVtZW50Owog
IH0sCgogIHJlbW92ZTogZnVuY3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9
ICQoZWxlbWVudCk7CiAgICBlbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQo
ZWxlbWVudCk7CiAgICByZXR1cm4gZWxlbWVudDsKICB9LAoKICB1cGRhdGU6IGZ1
bmN0aW9uKGVsZW1lbnQsIGNvbnRlbnQpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1l
bnQpOwogICAgaWYgKGNvbnRlbnQgJiYgY29udGVudC50b0VsZW1lbnQpIGNvbnRl
bnQgPSBjb250ZW50LnRvRWxlbWVudCgpOwogICAgaWYgKE9iamVjdC5pc0VsZW1l
bnQoY29udGVudCkpIHJldHVybiBlbGVtZW50LnVwZGF0ZSgpLmluc2VydChjb250
ZW50KTsKICAgIGNvbnRlbnQgPSBPYmplY3QudG9IVE1MKGNvbnRlbnQpOwogICAg
ZWxlbWVudC5pbm5lckhUTUwgPSBjb250ZW50LnN0cmlwU2NyaXB0cygpOwogICAg
Y29udGVudC5ldmFsU2NyaXB0cy5iaW5kKGNvbnRlbnQpLmRlZmVyKCk7CiAgICBy
ZXR1cm4gZWxlbWVudDsKICB9LAoKICByZXBsYWNlOiBmdW5jdGlvbihlbGVtZW50
LCBjb250ZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIGlmIChj
b250ZW50ICYmIGNvbnRlbnQudG9FbGVtZW50KSBjb250ZW50ID0gY29udGVudC50
b0VsZW1lbnQoKTsKICAgIGVsc2UgaWYgKCFPYmplY3QuaXNFbGVtZW50KGNvbnRl
bnQpKSB7CiAgICAgIGNvbnRlbnQgPSBPYmplY3QudG9IVE1MKGNvbnRlbnQpOwog
ICAgICB2YXIgcmFuZ2UgPSBlbGVtZW50Lm93bmVyRG9jdW1lbnQuY3JlYXRlUmFu
Z2UoKTsKICAgICAgcmFuZ2Uuc2VsZWN0Tm9kZShlbGVtZW50KTsKICAgICAgY29u
dGVudC5ldmFsU2NyaXB0cy5iaW5kKGNvbnRlbnQpLmRlZmVyKCk7CiAgICAgIGNv
bnRlbnQgPSByYW5nZS5jcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQoY29udGVudC5z
dHJpcFNjcmlwdHMoKSk7CiAgICB9CiAgICBlbGVtZW50LnBhcmVudE5vZGUucmVw
bGFjZUNoaWxkKGNvbnRlbnQsIGVsZW1lbnQpOwogICAgcmV0dXJuIGVsZW1lbnQ7
CiAgfSwKCiAgaW5zZXJ0OiBmdW5jdGlvbihlbGVtZW50LCBpbnNlcnRpb25zKSB7
CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKCiAgICBpZiAoT2JqZWN0LmlzU3Ry
aW5nKGluc2VydGlvbnMpIHx8IE9iamVjdC5pc051bWJlcihpbnNlcnRpb25zKSB8
fAogICAgICAgIE9iamVjdC5pc0VsZW1lbnQoaW5zZXJ0aW9ucykgfHwgKGluc2Vy
dGlvbnMgJiYgKGluc2VydGlvbnMudG9FbGVtZW50IHx8IGluc2VydGlvbnMudG9I
VE1MKSkpCiAgICAgICAgICBpbnNlcnRpb25zID0ge2JvdHRvbTppbnNlcnRpb25z
fTsKCiAgICB2YXIgY29udGVudCwgaW5zZXJ0LCB0YWdOYW1lLCBjaGlsZE5vZGVz
OwoKICAgIGZvciAodmFyIHBvc2l0aW9uIGluIGluc2VydGlvbnMpIHsKICAgICAg
Y29udGVudCAgPSBpbnNlcnRpb25zW3Bvc2l0aW9uXTsKICAgICAgcG9zaXRpb24g
PSBwb3NpdGlvbi50b0xvd2VyQ2FzZSgpOwogICAgICBpbnNlcnQgPSBFbGVtZW50
Ll9pbnNlcnRpb25UcmFuc2xhdGlvbnNbcG9zaXRpb25dOwoKICAgICAgaWYgKGNv
bnRlbnQgJiYgY29udGVudC50b0VsZW1lbnQpIGNvbnRlbnQgPSBjb250ZW50LnRv
RWxlbWVudCgpOwogICAgICBpZiAoT2JqZWN0LmlzRWxlbWVudChjb250ZW50KSkg
ewogICAgICAgIGluc2VydChlbGVtZW50LCBjb250ZW50KTsKICAgICAgICBjb250
aW51ZTsKICAgICAgfQoKICAgICAgY29udGVudCA9IE9iamVjdC50b0hUTUwoY29u
dGVudCk7CgogICAgICB0YWdOYW1lID0gKChwb3NpdGlvbiA9PSAnYmVmb3JlJyB8
fCBwb3NpdGlvbiA9PSAnYWZ0ZXInKQogICAgICAgID8gZWxlbWVudC5wYXJlbnRO
b2RlIDogZWxlbWVudCkudGFnTmFtZS50b1VwcGVyQ2FzZSgpOwoKICAgICAgY2hp
bGROb2RlcyA9IEVsZW1lbnQuX2dldENvbnRlbnRGcm9tQW5vbnltb3VzRWxlbWVu
dCh0YWdOYW1lLCBjb250ZW50LnN0cmlwU2NyaXB0cygpKTsKCiAgICAgIGlmIChw
b3NpdGlvbiA9PSAndG9wJyB8fCBwb3NpdGlvbiA9PSAnYWZ0ZXInKSBjaGlsZE5v
ZGVzLnJldmVyc2UoKTsKICAgICAgY2hpbGROb2Rlcy5lYWNoKGluc2VydC5jdXJy
eShlbGVtZW50KSk7CgogICAgICBjb250ZW50LmV2YWxTY3JpcHRzLmJpbmQoY29u
dGVudCkuZGVmZXIoKTsKICAgIH0KCiAgICByZXR1cm4gZWxlbWVudDsKICB9LAoK
ICB3cmFwOiBmdW5jdGlvbihlbGVtZW50LCB3cmFwcGVyLCBhdHRyaWJ1dGVzKSB7
CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIGlmIChPYmplY3QuaXNFbGVt
ZW50KHdyYXBwZXIpKQogICAgICAkKHdyYXBwZXIpLndyaXRlQXR0cmlidXRlKGF0
dHJpYnV0ZXMgfHwgeyB9KTsKICAgIGVsc2UgaWYgKE9iamVjdC5pc1N0cmluZyh3
cmFwcGVyKSkgd3JhcHBlciA9IG5ldyBFbGVtZW50KHdyYXBwZXIsIGF0dHJpYnV0
ZXMpOwogICAgZWxzZSB3cmFwcGVyID0gbmV3IEVsZW1lbnQoJ2RpdicsIHdyYXBw
ZXIpOwogICAgaWYgKGVsZW1lbnQucGFyZW50Tm9kZSkKICAgICAgZWxlbWVudC5w
YXJlbnROb2RlLnJlcGxhY2VDaGlsZCh3cmFwcGVyLCBlbGVtZW50KTsKICAgIHdy
YXBwZXIuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAgICByZXR1cm4gd3JhcHBlcjsK
ICB9LAoKICBpbnNwZWN0OiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBlbGVtZW50
ID0gJChlbGVtZW50KTsKICAgIHZhciByZXN1bHQgPSAnPCcgKyBlbGVtZW50LnRh
Z05hbWUudG9Mb3dlckNhc2UoKTsKICAgICRIKHsnaWQnOiAnaWQnLCAnY2xhc3NO
YW1lJzogJ2NsYXNzJ30pLmVhY2goZnVuY3Rpb24ocGFpcikgewogICAgICB2YXIg
cHJvcGVydHkgPSBwYWlyLmZpcnN0KCksIGF0dHJpYnV0ZSA9IHBhaXIubGFzdCgp
OwogICAgICB2YXIgdmFsdWUgPSAoZWxlbWVudFtwcm9wZXJ0eV0gfHwgJycpLnRv
U3RyaW5nKCk7CiAgICAgIGlmICh2YWx1ZSkgcmVzdWx0ICs9ICcgJyArIGF0dHJp
YnV0ZSArICc9JyArIHZhbHVlLmluc3BlY3QodHJ1ZSk7CiAgICB9KTsKICAgIHJl
dHVybiByZXN1bHQgKyAnPic7CiAgfSwKCiAgcmVjdXJzaXZlbHlDb2xsZWN0OiBm
dW5jdGlvbihlbGVtZW50LCBwcm9wZXJ0eSkgewogICAgZWxlbWVudCA9ICQoZWxl
bWVudCk7CiAgICB2YXIgZWxlbWVudHMgPSBbXTsKICAgIHdoaWxlIChlbGVtZW50
ID0gZWxlbWVudFtwcm9wZXJ0eV0pCiAgICAgIGlmIChlbGVtZW50Lm5vZGVUeXBl
ID09IDEpCiAgICAgICAgZWxlbWVudHMucHVzaChFbGVtZW50LmV4dGVuZChlbGVt
ZW50KSk7CiAgICByZXR1cm4gZWxlbWVudHM7CiAgfSwKCiAgYW5jZXN0b3JzOiBm
dW5jdGlvbihlbGVtZW50KSB7CiAgICByZXR1cm4gJChlbGVtZW50KS5yZWN1cnNp
dmVseUNvbGxlY3QoJ3BhcmVudE5vZGUnKTsKICB9LAoKICBkZXNjZW5kYW50czog
ZnVuY3Rpb24oZWxlbWVudCkgewogICAgcmV0dXJuICQoZWxlbWVudCkuc2VsZWN0
KCIqIik7CiAgfSwKCiAgZmlyc3REZXNjZW5kYW50OiBmdW5jdGlvbihlbGVtZW50
KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KS5maXJzdENoaWxkOwogICAgd2hp
bGUgKGVsZW1lbnQgJiYgZWxlbWVudC5ub2RlVHlwZSAhPSAxKSBlbGVtZW50ID0g
ZWxlbWVudC5uZXh0U2libGluZzsKICAgIHJldHVybiAkKGVsZW1lbnQpOwogIH0s
CgogIGltbWVkaWF0ZURlc2NlbmRhbnRzOiBmdW5jdGlvbihlbGVtZW50KSB7CiAg
ICBpZiAoIShlbGVtZW50ID0gJChlbGVtZW50KS5maXJzdENoaWxkKSkgcmV0dXJu
IFtdOwogICAgd2hpbGUgKGVsZW1lbnQgJiYgZWxlbWVudC5ub2RlVHlwZSAhPSAx
KSBlbGVtZW50ID0gZWxlbWVudC5uZXh0U2libGluZzsKICAgIGlmIChlbGVtZW50
KSByZXR1cm4gW2VsZW1lbnRdLmNvbmNhdCgkKGVsZW1lbnQpLm5leHRTaWJsaW5n
cygpKTsKICAgIHJldHVybiBbXTsKICB9LAoKICBwcmV2aW91c1NpYmxpbmdzOiBm
dW5jdGlvbihlbGVtZW50KSB7CiAgICByZXR1cm4gJChlbGVtZW50KS5yZWN1cnNp
dmVseUNvbGxlY3QoJ3ByZXZpb3VzU2libGluZycpOwogIH0sCgogIG5leHRTaWJs
aW5nczogZnVuY3Rpb24oZWxlbWVudCkgewogICAgcmV0dXJuICQoZWxlbWVudCku
cmVjdXJzaXZlbHlDb2xsZWN0KCduZXh0U2libGluZycpOwogIH0sCgogIHNpYmxp
bmdzOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50
KTsKICAgIHJldHVybiBlbGVtZW50LnByZXZpb3VzU2libGluZ3MoKS5yZXZlcnNl
KCkuY29uY2F0KGVsZW1lbnQubmV4dFNpYmxpbmdzKCkpOwogIH0sCgogIG1hdGNo
OiBmdW5jdGlvbihlbGVtZW50LCBzZWxlY3RvcikgewogICAgaWYgKE9iamVjdC5p
c1N0cmluZyhzZWxlY3RvcikpCiAgICAgIHNlbGVjdG9yID0gbmV3IFNlbGVjdG9y
KHNlbGVjdG9yKTsKICAgIHJldHVybiBzZWxlY3Rvci5tYXRjaCgkKGVsZW1lbnQp
KTsKICB9LAoKICB1cDogZnVuY3Rpb24oZWxlbWVudCwgZXhwcmVzc2lvbiwgaW5k
ZXgpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgaWYgKGFyZ3VtZW50
cy5sZW5ndGggPT0gMSkgcmV0dXJuICQoZWxlbWVudC5wYXJlbnROb2RlKTsKICAg
IHZhciBhbmNlc3RvcnMgPSBlbGVtZW50LmFuY2VzdG9ycygpOwogICAgcmV0dXJu
IE9iamVjdC5pc051bWJlcihleHByZXNzaW9uKSA/IGFuY2VzdG9yc1tleHByZXNz
aW9uXSA6CiAgICAgIFNlbGVjdG9yLmZpbmRFbGVtZW50KGFuY2VzdG9ycywgZXhw
cmVzc2lvbiwgaW5kZXgpOwogIH0sCgogIGRvd246IGZ1bmN0aW9uKGVsZW1lbnQs
IGV4cHJlc3Npb24sIGluZGV4KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsK
ICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHJldHVybiBlbGVtZW50LmZp
cnN0RGVzY2VuZGFudCgpOwogICAgcmV0dXJuIE9iamVjdC5pc051bWJlcihleHBy
ZXNzaW9uKSA/IGVsZW1lbnQuZGVzY2VuZGFudHMoKVtleHByZXNzaW9uXSA6CiAg
ICAgIEVsZW1lbnQuc2VsZWN0KGVsZW1lbnQsIGV4cHJlc3Npb24pW2luZGV4IHx8
IDBdOwogIH0sCgogIHByZXZpb3VzOiBmdW5jdGlvbihlbGVtZW50LCBleHByZXNz
aW9uLCBpbmRleCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICBpZiAo
YXJndW1lbnRzLmxlbmd0aCA9PSAxKSByZXR1cm4gJChTZWxlY3Rvci5oYW5kbGVy
cy5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKGVsZW1lbnQpKTsKICAgIHZhciBwcmV2
aW91c1NpYmxpbmdzID0gZWxlbWVudC5wcmV2aW91c1NpYmxpbmdzKCk7CiAgICBy
ZXR1cm4gT2JqZWN0LmlzTnVtYmVyKGV4cHJlc3Npb24pID8gcHJldmlvdXNTaWJs
aW5nc1tleHByZXNzaW9uXSA6CiAgICAgIFNlbGVjdG9yLmZpbmRFbGVtZW50KHBy
ZXZpb3VzU2libGluZ3MsIGV4cHJlc3Npb24sIGluZGV4KTsKICB9LAoKICBuZXh0
OiBmdW5jdGlvbihlbGVtZW50LCBleHByZXNzaW9uLCBpbmRleCkgewogICAgZWxl
bWVudCA9ICQoZWxlbWVudCk7CiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAx
KSByZXR1cm4gJChTZWxlY3Rvci5oYW5kbGVycy5uZXh0RWxlbWVudFNpYmxpbmco
ZWxlbWVudCkpOwogICAgdmFyIG5leHRTaWJsaW5ncyA9IGVsZW1lbnQubmV4dFNp
YmxpbmdzKCk7CiAgICByZXR1cm4gT2JqZWN0LmlzTnVtYmVyKGV4cHJlc3Npb24p
ID8gbmV4dFNpYmxpbmdzW2V4cHJlc3Npb25dIDoKICAgICAgU2VsZWN0b3IuZmlu
ZEVsZW1lbnQobmV4dFNpYmxpbmdzLCBleHByZXNzaW9uLCBpbmRleCk7CiAgfSwK
CiAgc2VsZWN0OiBmdW5jdGlvbigpIHsKICAgIHZhciBhcmdzID0gJEEoYXJndW1l
bnRzKSwgZWxlbWVudCA9ICQoYXJncy5zaGlmdCgpKTsKICAgIHJldHVybiBTZWxl
Y3Rvci5maW5kQ2hpbGRFbGVtZW50cyhlbGVtZW50LCBhcmdzKTsKICB9LAoKICBh
ZGphY2VudDogZnVuY3Rpb24oKSB7CiAgICB2YXIgYXJncyA9ICRBKGFyZ3VtZW50
cyksIGVsZW1lbnQgPSAkKGFyZ3Muc2hpZnQoKSk7CiAgICByZXR1cm4gU2VsZWN0
b3IuZmluZENoaWxkRWxlbWVudHMoZWxlbWVudC5wYXJlbnROb2RlLCBhcmdzKS53
aXRob3V0KGVsZW1lbnQpOwogIH0sCgogIGlkZW50aWZ5OiBmdW5jdGlvbihlbGVt
ZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIHZhciBpZCA9IGVs
ZW1lbnQucmVhZEF0dHJpYnV0ZSgnaWQnKSwgc2VsZiA9IGFyZ3VtZW50cy5jYWxs
ZWU7CiAgICBpZiAoaWQpIHJldHVybiBpZDsKICAgIGRvIHsgaWQgPSAnYW5vbnlt
b3VzX2VsZW1lbnRfJyArIHNlbGYuY291bnRlcisrIH0gd2hpbGUgKCQoaWQpKTsK
ICAgIGVsZW1lbnQud3JpdGVBdHRyaWJ1dGUoJ2lkJywgaWQpOwogICAgcmV0dXJu
IGlkOwogIH0sCgogIHJlYWRBdHRyaWJ1dGU6IGZ1bmN0aW9uKGVsZW1lbnQsIG5h
bWUpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgaWYgKFByb3RvdHlw
ZS5Ccm93c2VyLklFKSB7CiAgICAgIHZhciB0ID0gRWxlbWVudC5fYXR0cmlidXRl
VHJhbnNsYXRpb25zLnJlYWQ7CiAgICAgIGlmICh0LnZhbHVlc1tuYW1lXSkgcmV0
dXJuIHQudmFsdWVzW25hbWVdKGVsZW1lbnQsIG5hbWUpOwogICAgICBpZiAodC5u
YW1lc1tuYW1lXSkgbmFtZSA9IHQubmFtZXNbbmFtZV07CiAgICAgIGlmIChuYW1l
LmluY2x1ZGUoJzonKSkgewogICAgICAgIHJldHVybiAoIWVsZW1lbnQuYXR0cmli
dXRlcyB8fCAhZWxlbWVudC5hdHRyaWJ1dGVzW25hbWVdKSA/IG51bGwgOgogICAg
ICAgICBlbGVtZW50LmF0dHJpYnV0ZXNbbmFtZV0udmFsdWU7CiAgICAgIH0KICAg
IH0KICAgIHJldHVybiBlbGVtZW50LmdldEF0dHJpYnV0ZShuYW1lKTsKICB9LAoK
ICB3cml0ZUF0dHJpYnV0ZTogZnVuY3Rpb24oZWxlbWVudCwgbmFtZSwgdmFsdWUp
IHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgdmFyIGF0dHJpYnV0ZXMg
PSB7IH0sIHQgPSBFbGVtZW50Ll9hdHRyaWJ1dGVUcmFuc2xhdGlvbnMud3JpdGU7
CgogICAgaWYgKHR5cGVvZiBuYW1lID09ICdvYmplY3QnKSBhdHRyaWJ1dGVzID0g
bmFtZTsKICAgIGVsc2UgYXR0cmlidXRlc1tuYW1lXSA9IE9iamVjdC5pc1VuZGVm
aW5lZCh2YWx1ZSkgPyB0cnVlIDogdmFsdWU7CgogICAgZm9yICh2YXIgYXR0ciBp
biBhdHRyaWJ1dGVzKSB7CiAgICAgIG5hbWUgPSB0Lm5hbWVzW2F0dHJdIHx8IGF0
dHI7CiAgICAgIHZhbHVlID0gYXR0cmlidXRlc1thdHRyXTsKICAgICAgaWYgKHQu
dmFsdWVzW2F0dHJdKSBuYW1lID0gdC52YWx1ZXNbYXR0cl0oZWxlbWVudCwgdmFs
dWUpOwogICAgICBpZiAodmFsdWUgPT09IGZhbHNlIHx8IHZhbHVlID09PSBudWxs
KQogICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKG5hbWUpOwogICAgICBl
bHNlIGlmICh2YWx1ZSA9PT0gdHJ1ZSkKICAgICAgICBlbGVtZW50LnNldEF0dHJp
YnV0ZShuYW1lLCBuYW1lKTsKICAgICAgZWxzZSBlbGVtZW50LnNldEF0dHJpYnV0
ZShuYW1lLCB2YWx1ZSk7CiAgICB9CiAgICByZXR1cm4gZWxlbWVudDsKICB9LAoK
ICBnZXRIZWlnaHQ6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHJldHVybiAkKGVs
ZW1lbnQpLmdldERpbWVuc2lvbnMoKS5oZWlnaHQ7CiAgfSwKCiAgZ2V0V2lkdGg6
IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHJldHVybiAkKGVsZW1lbnQpLmdldERp
bWVuc2lvbnMoKS53aWR0aDsKICB9LAoKICBjbGFzc05hbWVzOiBmdW5jdGlvbihl
bGVtZW50KSB7CiAgICByZXR1cm4gbmV3IEVsZW1lbnQuQ2xhc3NOYW1lcyhlbGVt
ZW50KTsKICB9LAoKICBoYXNDbGFzc05hbWU6IGZ1bmN0aW9uKGVsZW1lbnQsIGNs
YXNzTmFtZSkgewogICAgaWYgKCEoZWxlbWVudCA9ICQoZWxlbWVudCkpKSByZXR1
cm47CiAgICB2YXIgZWxlbWVudENsYXNzTmFtZSA9IGVsZW1lbnQuY2xhc3NOYW1l
OwogICAgcmV0dXJuIChlbGVtZW50Q2xhc3NOYW1lLmxlbmd0aCA+IDAgJiYgKGVs
ZW1lbnRDbGFzc05hbWUgPT0gY2xhc3NOYW1lIHx8CiAgICAgIG5ldyBSZWdFeHAo
IihefFxccykiICsgY2xhc3NOYW1lICsgIihcXHN8JCkiKS50ZXN0KGVsZW1lbnRD
bGFzc05hbWUpKSk7CiAgfSwKCiAgYWRkQ2xhc3NOYW1lOiBmdW5jdGlvbihlbGVt
ZW50LCBjbGFzc05hbWUpIHsKICAgIGlmICghKGVsZW1lbnQgPSAkKGVsZW1lbnQp
KSkgcmV0dXJuOwogICAgaWYgKCFlbGVtZW50Lmhhc0NsYXNzTmFtZShjbGFzc05h
bWUpKQogICAgICBlbGVtZW50LmNsYXNzTmFtZSArPSAoZWxlbWVudC5jbGFzc05h
bWUgPyAnICcgOiAnJykgKyBjbGFzc05hbWU7CiAgICByZXR1cm4gZWxlbWVudDsK
ICB9LAoKICByZW1vdmVDbGFzc05hbWU6IGZ1bmN0aW9uKGVsZW1lbnQsIGNsYXNz
TmFtZSkgewogICAgaWYgKCEoZWxlbWVudCA9ICQoZWxlbWVudCkpKSByZXR1cm47
CiAgICBlbGVtZW50LmNsYXNzTmFtZSA9IGVsZW1lbnQuY2xhc3NOYW1lLnJlcGxh
Y2UoCiAgICAgIG5ldyBSZWdFeHAoIihefFxccyspIiArIGNsYXNzTmFtZSArICIo
XFxzK3wkKSIpLCAnICcpLnN0cmlwKCk7CiAgICByZXR1cm4gZWxlbWVudDsKICB9
LAoKICB0b2dnbGVDbGFzc05hbWU6IGZ1bmN0aW9uKGVsZW1lbnQsIGNsYXNzTmFt
ZSkgewogICAgaWYgKCEoZWxlbWVudCA9ICQoZWxlbWVudCkpKSByZXR1cm47CiAg
ICByZXR1cm4gZWxlbWVudFtlbGVtZW50Lmhhc0NsYXNzTmFtZShjbGFzc05hbWUp
ID8KICAgICAgJ3JlbW92ZUNsYXNzTmFtZScgOiAnYWRkQ2xhc3NOYW1lJ10oY2xh
c3NOYW1lKTsKICB9LAoKICAvLyByZW1vdmVzIHdoaXRlc3BhY2Utb25seSB0ZXh0
IG5vZGUgY2hpbGRyZW4KICBjbGVhbldoaXRlc3BhY2U6IGZ1bmN0aW9uKGVsZW1l
bnQpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgdmFyIG5vZGUgPSBl
bGVtZW50LmZpcnN0Q2hpbGQ7CiAgICB3aGlsZSAobm9kZSkgewogICAgICB2YXIg
bmV4dE5vZGUgPSBub2RlLm5leHRTaWJsaW5nOwogICAgICBpZiAobm9kZS5ub2Rl
VHlwZSA9PSAzICYmICEvXFMvLnRlc3Qobm9kZS5ub2RlVmFsdWUpKQogICAgICAg
IGVsZW1lbnQucmVtb3ZlQ2hpbGQobm9kZSk7CiAgICAgIG5vZGUgPSBuZXh0Tm9k
ZTsKICAgIH0KICAgIHJldHVybiBlbGVtZW50OwogIH0sCgogIGVtcHR5OiBmdW5j
dGlvbihlbGVtZW50KSB7CiAgICByZXR1cm4gJChlbGVtZW50KS5pbm5lckhUTUwu
YmxhbmsoKTsKICB9LAoKICBkZXNjZW5kYW50T2Y6IGZ1bmN0aW9uKGVsZW1lbnQs
IGFuY2VzdG9yKSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KSwgYW5jZXN0b3Ig
PSAkKGFuY2VzdG9yKTsKCiAgICBpZiAoZWxlbWVudC5jb21wYXJlRG9jdW1lbnRQ
b3NpdGlvbikKICAgICAgcmV0dXJuIChlbGVtZW50LmNvbXBhcmVEb2N1bWVudFBv
c2l0aW9uKGFuY2VzdG9yKSAmIDgpID09PSA4OwoKICAgIGlmIChhbmNlc3Rvci5j
b250YWlucykKICAgICAgcmV0dXJuIGFuY2VzdG9yLmNvbnRhaW5zKGVsZW1lbnQp
ICYmIGFuY2VzdG9yICE9PSBlbGVtZW50OwoKICAgIHdoaWxlIChlbGVtZW50ID0g
ZWxlbWVudC5wYXJlbnROb2RlKQogICAgICBpZiAoZWxlbWVudCA9PSBhbmNlc3Rv
cikgcmV0dXJuIHRydWU7CgogICAgcmV0dXJuIGZhbHNlOwogIH0sCgogIHNjcm9s
bFRvOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50
KTsKICAgIHZhciBwb3MgPSBlbGVtZW50LmN1bXVsYXRpdmVPZmZzZXQoKTsKICAg
IHdpbmRvdy5zY3JvbGxUbyhwb3NbMF0sIHBvc1sxXSk7CiAgICByZXR1cm4gZWxl
bWVudDsKICB9LAoKICBnZXRTdHlsZTogZnVuY3Rpb24oZWxlbWVudCwgc3R5bGUp
IHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgc3R5bGUgPSBzdHlsZSA9
PSAnZmxvYXQnID8gJ2Nzc0Zsb2F0JyA6IHN0eWxlLmNhbWVsaXplKCk7CiAgICB2
YXIgdmFsdWUgPSBlbGVtZW50LnN0eWxlW3N0eWxlXTsKICAgIGlmICghdmFsdWUg
fHwgdmFsdWUgPT0gJ2F1dG8nKSB7CiAgICAgIHZhciBjc3MgPSBkb2N1bWVudC5k
ZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsIG51bGwpOwogICAg
ICB2YWx1ZSA9IGNzcyA/IGNzc1tzdHlsZV0gOiBudWxsOwogICAgfQogICAgaWYg
KHN0eWxlID09ICdvcGFjaXR5JykgcmV0dXJuIHZhbHVlID8gcGFyc2VGbG9hdCh2
YWx1ZSkgOiAxLjA7CiAgICByZXR1cm4gdmFsdWUgPT0gJ2F1dG8nID8gbnVsbCA6
IHZhbHVlOwogIH0sCgogIGdldE9wYWNpdHk6IGZ1bmN0aW9uKGVsZW1lbnQpIHsK
ICAgIHJldHVybiAkKGVsZW1lbnQpLmdldFN0eWxlKCdvcGFjaXR5Jyk7CiAgfSwK
CiAgc2V0U3R5bGU6IGZ1bmN0aW9uKGVsZW1lbnQsIHN0eWxlcykgewogICAgZWxl
bWVudCA9ICQoZWxlbWVudCk7CiAgICB2YXIgZWxlbWVudFN0eWxlID0gZWxlbWVu
dC5zdHlsZSwgbWF0Y2g7CiAgICBpZiAoT2JqZWN0LmlzU3RyaW5nKHN0eWxlcykp
IHsKICAgICAgZWxlbWVudC5zdHlsZS5jc3NUZXh0ICs9ICc7JyArIHN0eWxlczsK
ICAgICAgcmV0dXJuIHN0eWxlcy5pbmNsdWRlKCdvcGFjaXR5JykgPwogICAgICAg
IGVsZW1lbnQuc2V0T3BhY2l0eShzdHlsZXMubWF0Y2goL29wYWNpdHk6XHMqKFxk
P1wuP1xkKikvKVsxXSkgOiBlbGVtZW50OwogICAgfQogICAgZm9yICh2YXIgcHJv
cGVydHkgaW4gc3R5bGVzKQogICAgICBpZiAocHJvcGVydHkgPT0gJ29wYWNpdHkn
KSBlbGVtZW50LnNldE9wYWNpdHkoc3R5bGVzW3Byb3BlcnR5XSk7CiAgICAgIGVs
c2UKICAgICAgICBlbGVtZW50U3R5bGVbKHByb3BlcnR5ID09ICdmbG9hdCcgfHwg
cHJvcGVydHkgPT0gJ2Nzc0Zsb2F0JykgPwogICAgICAgICAgKE9iamVjdC5pc1Vu
ZGVmaW5lZChlbGVtZW50U3R5bGUuc3R5bGVGbG9hdCkgPyAnY3NzRmxvYXQnIDog
J3N0eWxlRmxvYXQnKSA6CiAgICAgICAgICAgIHByb3BlcnR5XSA9IHN0eWxlc1tw
cm9wZXJ0eV07CgogICAgcmV0dXJuIGVsZW1lbnQ7CiAgfSwKCiAgc2V0T3BhY2l0
eTogZnVuY3Rpb24oZWxlbWVudCwgdmFsdWUpIHsKICAgIGVsZW1lbnQgPSAkKGVs
ZW1lbnQpOwogICAgZWxlbWVudC5zdHlsZS5vcGFjaXR5ID0gKHZhbHVlID09IDEg
fHwgdmFsdWUgPT09ICcnKSA/ICcnIDoKICAgICAgKHZhbHVlIDwgMC4wMDAwMSkg
PyAwIDogdmFsdWU7CiAgICByZXR1cm4gZWxlbWVudDsKICB9LAoKICBnZXREaW1l
bnNpb25zOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVt
ZW50KTsKICAgIHZhciBkaXNwbGF5ID0gZWxlbWVudC5nZXRTdHlsZSgnZGlzcGxh
eScpOwogICAgaWYgKGRpc3BsYXkgIT0gJ25vbmUnICYmIGRpc3BsYXkgIT0gbnVs
bCkgLy8gU2FmYXJpIGJ1ZwogICAgICByZXR1cm4ge3dpZHRoOiBlbGVtZW50Lm9m
ZnNldFdpZHRoLCBoZWlnaHQ6IGVsZW1lbnQub2Zmc2V0SGVpZ2h0fTsKCiAgICAv
LyBBbGwgKldpZHRoIGFuZCAqSGVpZ2h0IHByb3BlcnRpZXMgZ2l2ZSAwIG9uIGVs
ZW1lbnRzIHdpdGggZGlzcGxheSBub25lLAogICAgLy8gc28gZW5hYmxlIHRoZSBl
bGVtZW50IHRlbXBvcmFyaWx5CiAgICB2YXIgZWxzID0gZWxlbWVudC5zdHlsZTsK
ICAgIHZhciBvcmlnaW5hbFZpc2liaWxpdHkgPSBlbHMudmlzaWJpbGl0eTsKICAg
IHZhciBvcmlnaW5hbFBvc2l0aW9uID0gZWxzLnBvc2l0aW9uOwogICAgdmFyIG9y
aWdpbmFsRGlzcGxheSA9IGVscy5kaXNwbGF5OwogICAgZWxzLnZpc2liaWxpdHkg
PSAnaGlkZGVuJzsKICAgIGVscy5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7CiAgICBl
bHMuZGlzcGxheSA9ICdibG9jayc7CiAgICB2YXIgb3JpZ2luYWxXaWR0aCA9IGVs
ZW1lbnQuY2xpZW50V2lkdGg7CiAgICB2YXIgb3JpZ2luYWxIZWlnaHQgPSBlbGVt
ZW50LmNsaWVudEhlaWdodDsKICAgIGVscy5kaXNwbGF5ID0gb3JpZ2luYWxEaXNw
bGF5OwogICAgZWxzLnBvc2l0aW9uID0gb3JpZ2luYWxQb3NpdGlvbjsKICAgIGVs
cy52aXNpYmlsaXR5ID0gb3JpZ2luYWxWaXNpYmlsaXR5OwogICAgcmV0dXJuIHt3
aWR0aDogb3JpZ2luYWxXaWR0aCwgaGVpZ2h0OiBvcmlnaW5hbEhlaWdodH07CiAg
fSwKCiAgbWFrZVBvc2l0aW9uZWQ6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIGVs
ZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgdmFyIHBvcyA9IEVsZW1lbnQuZ2V0U3R5
bGUoZWxlbWVudCwgJ3Bvc2l0aW9uJyk7CiAgICBpZiAocG9zID09ICdzdGF0aWMn
IHx8ICFwb3MpIHsKICAgICAgZWxlbWVudC5fbWFkZVBvc2l0aW9uZWQgPSB0cnVl
OwogICAgICBlbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJzsKICAg
ICAgLy8gT3BlcmEgcmV0dXJucyB0aGUgb2Zmc2V0IHJlbGF0aXZlIHRvIHRoZSBw
b3NpdGlvbmluZyBjb250ZXh0LCB3aGVuIGFuCiAgICAgIC8vIGVsZW1lbnQgaXMg
cG9zaXRpb24gcmVsYXRpdmUgYnV0IHRvcCBhbmQgbGVmdCBoYXZlIG5vdCBiZWVu
IGRlZmluZWQKICAgICAgaWYgKFByb3RvdHlwZS5Ccm93c2VyLk9wZXJhKSB7CiAg
ICAgICAgZWxlbWVudC5zdHlsZS50b3AgPSAwOwogICAgICAgIGVsZW1lbnQuc3R5
bGUubGVmdCA9IDA7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiBlbGVtZW50Owog
IH0sCgogIHVuZG9Qb3NpdGlvbmVkOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBl
bGVtZW50ID0gJChlbGVtZW50KTsKICAgIGlmIChlbGVtZW50Ll9tYWRlUG9zaXRp
b25lZCkgewogICAgICBlbGVtZW50Ll9tYWRlUG9zaXRpb25lZCA9IHVuZGVmaW5l
ZDsKICAgICAgZWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9CiAgICAgICAgZWxlbWVu
dC5zdHlsZS50b3AgPQogICAgICAgIGVsZW1lbnQuc3R5bGUubGVmdCA9CiAgICAg
ICAgZWxlbWVudC5zdHlsZS5ib3R0b20gPQogICAgICAgIGVsZW1lbnQuc3R5bGUu
cmlnaHQgPSAnJzsKICAgIH0KICAgIHJldHVybiBlbGVtZW50OwogIH0sCgogIG1h
a2VDbGlwcGluZzogZnVuY3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQo
ZWxlbWVudCk7CiAgICBpZiAoZWxlbWVudC5fb3ZlcmZsb3cpIHJldHVybiBlbGVt
ZW50OwogICAgZWxlbWVudC5fb3ZlcmZsb3cgPSBFbGVtZW50LmdldFN0eWxlKGVs
ZW1lbnQsICdvdmVyZmxvdycpIHx8ICdhdXRvJzsKICAgIGlmIChlbGVtZW50Ll9v
dmVyZmxvdyAhPT0gJ2hpZGRlbicpCiAgICAgIGVsZW1lbnQuc3R5bGUub3ZlcmZs
b3cgPSAnaGlkZGVuJzsKICAgIHJldHVybiBlbGVtZW50OwogIH0sCgogIHVuZG9D
bGlwcGluZzogZnVuY3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQoZWxl
bWVudCk7CiAgICBpZiAoIWVsZW1lbnQuX292ZXJmbG93KSByZXR1cm4gZWxlbWVu
dDsKICAgIGVsZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSBlbGVtZW50Ll9vdmVyZmxv
dyA9PSAnYXV0bycgPyAnJyA6IGVsZW1lbnQuX292ZXJmbG93OwogICAgZWxlbWVu
dC5fb3ZlcmZsb3cgPSBudWxsOwogICAgcmV0dXJuIGVsZW1lbnQ7CiAgfSwKCiAg
Y3VtdWxhdGl2ZU9mZnNldDogZnVuY3Rpb24oZWxlbWVudCkgewogICAgdmFyIHZh
bHVlVCA9IDAsIHZhbHVlTCA9IDA7CiAgICBkbyB7CiAgICAgIHZhbHVlVCArPSBl
bGVtZW50Lm9mZnNldFRvcCAgfHwgMDsKICAgICAgdmFsdWVMICs9IGVsZW1lbnQu
b2Zmc2V0TGVmdCB8fCAwOwogICAgICBlbGVtZW50ID0gZWxlbWVudC5vZmZzZXRQ
YXJlbnQ7CiAgICB9IHdoaWxlIChlbGVtZW50KTsKICAgIHJldHVybiBFbGVtZW50
Ll9yZXR1cm5PZmZzZXQodmFsdWVMLCB2YWx1ZVQpOwogIH0sCgogIHBvc2l0aW9u
ZWRPZmZzZXQ6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHZhciB2YWx1ZVQgPSAw
LCB2YWx1ZUwgPSAwOwogICAgZG8gewogICAgICB2YWx1ZVQgKz0gZWxlbWVudC5v
ZmZzZXRUb3AgIHx8IDA7CiAgICAgIHZhbHVlTCArPSBlbGVtZW50Lm9mZnNldExl
ZnQgfHwgMDsKICAgICAgZWxlbWVudCA9IGVsZW1lbnQub2Zmc2V0UGFyZW50Owog
ICAgICBpZiAoZWxlbWVudCkgewogICAgICAgIGlmIChlbGVtZW50LnRhZ05hbWUu
dG9VcHBlckNhc2UoKSA9PSAnQk9EWScpIGJyZWFrOwogICAgICAgIHZhciBwID0g
RWxlbWVudC5nZXRTdHlsZShlbGVtZW50LCAncG9zaXRpb24nKTsKICAgICAgICBp
ZiAocCAhPT0gJ3N0YXRpYycpIGJyZWFrOwogICAgICB9CiAgICB9IHdoaWxlIChl
bGVtZW50KTsKICAgIHJldHVybiBFbGVtZW50Ll9yZXR1cm5PZmZzZXQodmFsdWVM
LCB2YWx1ZVQpOwogIH0sCgogIGFic29sdXRpemU6IGZ1bmN0aW9uKGVsZW1lbnQp
IHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgaWYgKGVsZW1lbnQuZ2V0
U3R5bGUoJ3Bvc2l0aW9uJykgPT0gJ2Fic29sdXRlJykgcmV0dXJuIGVsZW1lbnQ7
CiAgICAvLyBQb3NpdGlvbi5wcmVwYXJlKCk7IC8vIFRvIGJlIGRvbmUgbWFudWFs
bHkgYnkgU2NyaXB0eSB3aGVuIGl0IG5lZWRzIGl0LgoKICAgIHZhciBvZmZzZXRz
ID0gZWxlbWVudC5wb3NpdGlvbmVkT2Zmc2V0KCk7CiAgICB2YXIgdG9wICAgICA9
IG9mZnNldHNbMV07CiAgICB2YXIgbGVmdCAgICA9IG9mZnNldHNbMF07CiAgICB2
YXIgd2lkdGggICA9IGVsZW1lbnQuY2xpZW50V2lkdGg7CiAgICB2YXIgaGVpZ2h0
ICA9IGVsZW1lbnQuY2xpZW50SGVpZ2h0OwoKICAgIGVsZW1lbnQuX29yaWdpbmFs
TGVmdCAgID0gbGVmdCAtIHBhcnNlRmxvYXQoZWxlbWVudC5zdHlsZS5sZWZ0ICB8
fCAwKTsKICAgIGVsZW1lbnQuX29yaWdpbmFsVG9wICAgID0gdG9wICAtIHBhcnNl
RmxvYXQoZWxlbWVudC5zdHlsZS50b3AgfHwgMCk7CiAgICBlbGVtZW50Ll9vcmln
aW5hbFdpZHRoICA9IGVsZW1lbnQuc3R5bGUud2lkdGg7CiAgICBlbGVtZW50Ll9v
cmlnaW5hbEhlaWdodCA9IGVsZW1lbnQuc3R5bGUuaGVpZ2h0OwoKICAgIGVsZW1l
bnQuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnOwogICAgZWxlbWVudC5zdHls
ZS50b3AgICAgPSB0b3AgKyAncHgnOwogICAgZWxlbWVudC5zdHlsZS5sZWZ0ICAg
PSBsZWZ0ICsgJ3B4JzsKICAgIGVsZW1lbnQuc3R5bGUud2lkdGggID0gd2lkdGgg
KyAncHgnOwogICAgZWxlbWVudC5zdHlsZS5oZWlnaHQgPSBoZWlnaHQgKyAncHgn
OwogICAgcmV0dXJuIGVsZW1lbnQ7CiAgfSwKCiAgcmVsYXRpdml6ZTogZnVuY3Rp
b24oZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICBpZiAo
ZWxlbWVudC5nZXRTdHlsZSgncG9zaXRpb24nKSA9PSAncmVsYXRpdmUnKSByZXR1
cm4gZWxlbWVudDsKICAgIC8vIFBvc2l0aW9uLnByZXBhcmUoKTsgLy8gVG8gYmUg
ZG9uZSBtYW51YWxseSBieSBTY3JpcHR5IHdoZW4gaXQgbmVlZHMgaXQuCgogICAg
ZWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9ICdyZWxhdGl2ZSc7CiAgICB2YXIgdG9w
ICA9IHBhcnNlRmxvYXQoZWxlbWVudC5zdHlsZS50b3AgIHx8IDApIC0gKGVsZW1l
bnQuX29yaWdpbmFsVG9wIHx8IDApOwogICAgdmFyIGxlZnQgPSBwYXJzZUZsb2F0
KGVsZW1lbnQuc3R5bGUubGVmdCB8fCAwKSAtIChlbGVtZW50Ll9vcmlnaW5hbExl
ZnQgfHwgMCk7CgogICAgZWxlbWVudC5zdHlsZS50b3AgICAgPSB0b3AgKyAncHgn
OwogICAgZWxlbWVudC5zdHlsZS5sZWZ0ICAgPSBsZWZ0ICsgJ3B4JzsKICAgIGVs
ZW1lbnQuc3R5bGUuaGVpZ2h0ID0gZWxlbWVudC5fb3JpZ2luYWxIZWlnaHQ7CiAg
ICBlbGVtZW50LnN0eWxlLndpZHRoICA9IGVsZW1lbnQuX29yaWdpbmFsV2lkdGg7
CiAgICByZXR1cm4gZWxlbWVudDsKICB9LAoKICBjdW11bGF0aXZlU2Nyb2xsT2Zm
c2V0OiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICB2YXIgdmFsdWVUID0gMCwgdmFs
dWVMID0gMDsKICAgIGRvIHsKICAgICAgdmFsdWVUICs9IGVsZW1lbnQuc2Nyb2xs
VG9wICB8fCAwOwogICAgICB2YWx1ZUwgKz0gZWxlbWVudC5zY3JvbGxMZWZ0IHx8
IDA7CiAgICAgIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudE5vZGU7CiAgICB9IHdo
aWxlIChlbGVtZW50KTsKICAgIHJldHVybiBFbGVtZW50Ll9yZXR1cm5PZmZzZXQo
dmFsdWVMLCB2YWx1ZVQpOwogIH0sCgogIGdldE9mZnNldFBhcmVudDogZnVuY3Rp
b24oZWxlbWVudCkgewogICAgaWYgKGVsZW1lbnQub2Zmc2V0UGFyZW50KSByZXR1
cm4gJChlbGVtZW50Lm9mZnNldFBhcmVudCk7CiAgICBpZiAoZWxlbWVudCA9PSBk
b2N1bWVudC5ib2R5KSByZXR1cm4gJChlbGVtZW50KTsKCiAgICB3aGlsZSAoKGVs
ZW1lbnQgPSBlbGVtZW50LnBhcmVudE5vZGUpICYmIGVsZW1lbnQgIT0gZG9jdW1l
bnQuYm9keSkKICAgICAgaWYgKEVsZW1lbnQuZ2V0U3R5bGUoZWxlbWVudCwgJ3Bv
c2l0aW9uJykgIT0gJ3N0YXRpYycpCiAgICAgICAgcmV0dXJuICQoZWxlbWVudCk7
CgogICAgcmV0dXJuICQoZG9jdW1lbnQuYm9keSk7CiAgfSwKCiAgdmlld3BvcnRP
ZmZzZXQ6IGZ1bmN0aW9uKGZvckVsZW1lbnQpIHsKICAgIHZhciB2YWx1ZVQgPSAw
LCB2YWx1ZUwgPSAwOwoKICAgIHZhciBlbGVtZW50ID0gZm9yRWxlbWVudDsKICAg
IGRvIHsKICAgICAgdmFsdWVUICs9IGVsZW1lbnQub2Zmc2V0VG9wICB8fCAwOwog
ICAgICB2YWx1ZUwgKz0gZWxlbWVudC5vZmZzZXRMZWZ0IHx8IDA7CgogICAgICAv
LyBTYWZhcmkgZml4CiAgICAgIGlmIChlbGVtZW50Lm9mZnNldFBhcmVudCA9PSBk
b2N1bWVudC5ib2R5ICYmCiAgICAgICAgRWxlbWVudC5nZXRTdHlsZShlbGVtZW50
LCAncG9zaXRpb24nKSA9PSAnYWJzb2x1dGUnKSBicmVhazsKCiAgICB9IHdoaWxl
IChlbGVtZW50ID0gZWxlbWVudC5vZmZzZXRQYXJlbnQpOwoKICAgIGVsZW1lbnQg
PSBmb3JFbGVtZW50OwogICAgZG8gewogICAgICBpZiAoIVByb3RvdHlwZS5Ccm93
c2VyLk9wZXJhIHx8IChlbGVtZW50LnRhZ05hbWUgJiYgKGVsZW1lbnQudGFnTmFt
ZS50b1VwcGVyQ2FzZSgpID09ICdCT0RZJykpKSB7CiAgICAgICAgdmFsdWVUIC09
IGVsZW1lbnQuc2Nyb2xsVG9wICB8fCAwOwogICAgICAgIHZhbHVlTCAtPSBlbGVt
ZW50LnNjcm9sbExlZnQgfHwgMDsKICAgICAgfQogICAgfSB3aGlsZSAoZWxlbWVu
dCA9IGVsZW1lbnQucGFyZW50Tm9kZSk7CgogICAgcmV0dXJuIEVsZW1lbnQuX3Jl
dHVybk9mZnNldCh2YWx1ZUwsIHZhbHVlVCk7CiAgfSwKCiAgY2xvbmVQb3NpdGlv
bjogZnVuY3Rpb24oZWxlbWVudCwgc291cmNlKSB7CiAgICB2YXIgb3B0aW9ucyA9
IE9iamVjdC5leHRlbmQoewogICAgICBzZXRMZWZ0OiAgICB0cnVlLAogICAgICBz
ZXRUb3A6ICAgICB0cnVlLAogICAgICBzZXRXaWR0aDogICB0cnVlLAogICAgICBz
ZXRIZWlnaHQ6ICB0cnVlLAogICAgICBvZmZzZXRUb3A6ICAwLAogICAgICBvZmZz
ZXRMZWZ0OiAwCiAgICB9LCBhcmd1bWVudHNbMl0gfHwgeyB9KTsKCiAgICAvLyBm
aW5kIHBhZ2UgcG9zaXRpb24gb2Ygc291cmNlCiAgICBzb3VyY2UgPSAkKHNvdXJj
ZSk7CiAgICB2YXIgcCA9IHNvdXJjZS52aWV3cG9ydE9mZnNldCgpOwoKICAgIC8v
IGZpbmQgY29vcmRpbmF0ZSBzeXN0ZW0gdG8gdXNlCiAgICBlbGVtZW50ID0gJChl
bGVtZW50KTsKICAgIHZhciBkZWx0YSA9IFswLCAwXTsKICAgIHZhciBwYXJlbnQg
PSBudWxsOwogICAgLy8gZGVsdGEgWzAsMF0gd2lsbCBkbyBmaW5lIHdpdGggcG9z
aXRpb246IGZpeGVkIGVsZW1lbnRzLAogICAgLy8gcG9zaXRpb246YWJzb2x1dGUg
bmVlZHMgb2Zmc2V0UGFyZW50IGRlbHRhcwogICAgaWYgKEVsZW1lbnQuZ2V0U3R5
bGUoZWxlbWVudCwgJ3Bvc2l0aW9uJykgPT0gJ2Fic29sdXRlJykgewogICAgICBw
YXJlbnQgPSBlbGVtZW50LmdldE9mZnNldFBhcmVudCgpOwogICAgICBkZWx0YSA9
IHBhcmVudC52aWV3cG9ydE9mZnNldCgpOwogICAgfQoKICAgIC8vIGNvcnJlY3Qg
YnkgYm9keSBvZmZzZXRzIChmaXhlcyBTYWZhcmkpCiAgICBpZiAocGFyZW50ID09
IGRvY3VtZW50LmJvZHkpIHsKICAgICAgZGVsdGFbMF0gLT0gZG9jdW1lbnQuYm9k
eS5vZmZzZXRMZWZ0OwogICAgICBkZWx0YVsxXSAtPSBkb2N1bWVudC5ib2R5Lm9m
ZnNldFRvcDsKICAgIH0KCiAgICAvLyBzZXQgcG9zaXRpb24KICAgIGlmIChvcHRp
b25zLnNldExlZnQpICAgZWxlbWVudC5zdHlsZS5sZWZ0ICA9IChwWzBdIC0gZGVs
dGFbMF0gKyBvcHRpb25zLm9mZnNldExlZnQpICsgJ3B4JzsKICAgIGlmIChvcHRp
b25zLnNldFRvcCkgICAgZWxlbWVudC5zdHlsZS50b3AgICA9IChwWzFdIC0gZGVs
dGFbMV0gKyBvcHRpb25zLm9mZnNldFRvcCkgKyAncHgnOwogICAgaWYgKG9wdGlv
bnMuc2V0V2lkdGgpICBlbGVtZW50LnN0eWxlLndpZHRoID0gc291cmNlLm9mZnNl
dFdpZHRoICsgJ3B4JzsKICAgIGlmIChvcHRpb25zLnNldEhlaWdodCkgZWxlbWVu
dC5zdHlsZS5oZWlnaHQgPSBzb3VyY2Uub2Zmc2V0SGVpZ2h0ICsgJ3B4JzsKICAg
IHJldHVybiBlbGVtZW50OwogIH0KfTsKCkVsZW1lbnQuTWV0aG9kcy5pZGVudGlm
eS5jb3VudGVyID0gMTsKCk9iamVjdC5leHRlbmQoRWxlbWVudC5NZXRob2RzLCB7
CiAgZ2V0RWxlbWVudHNCeVNlbGVjdG9yOiBFbGVtZW50Lk1ldGhvZHMuc2VsZWN0
LAogIGNoaWxkRWxlbWVudHM6IEVsZW1lbnQuTWV0aG9kcy5pbW1lZGlhdGVEZXNj
ZW5kYW50cwp9KTsKCkVsZW1lbnQuX2F0dHJpYnV0ZVRyYW5zbGF0aW9ucyA9IHsK
ICB3cml0ZTogewogICAgbmFtZXM6IHsKICAgICAgY2xhc3NOYW1lOiAnY2xhc3Mn
LAogICAgICBodG1sRm9yOiAgICdmb3InCiAgICB9LAogICAgdmFsdWVzOiB7IH0K
ICB9Cn07CgppZiAoUHJvdG90eXBlLkJyb3dzZXIuT3BlcmEpIHsKICBFbGVtZW50
Lk1ldGhvZHMuZ2V0U3R5bGUgPSBFbGVtZW50Lk1ldGhvZHMuZ2V0U3R5bGUud3Jh
cCgKICAgIGZ1bmN0aW9uKHByb2NlZWQsIGVsZW1lbnQsIHN0eWxlKSB7CiAgICAg
IHN3aXRjaCAoc3R5bGUpIHsKICAgICAgICBjYXNlICdsZWZ0JzogY2FzZSAndG9w
JzogY2FzZSAncmlnaHQnOiBjYXNlICdib3R0b20nOgogICAgICAgICAgaWYgKHBy
b2NlZWQoZWxlbWVudCwgJ3Bvc2l0aW9uJykgPT09ICdzdGF0aWMnKSByZXR1cm4g
bnVsbDsKICAgICAgICBjYXNlICdoZWlnaHQnOiBjYXNlICd3aWR0aCc6CiAgICAg
ICAgICAvLyByZXR1cm5zICcwcHgnIGZvciBoaWRkZW4gZWxlbWVudHM7IHdlIHdh
bnQgaXQgdG8gcmV0dXJuIG51bGwKICAgICAgICAgIGlmICghRWxlbWVudC52aXNp
YmxlKGVsZW1lbnQpKSByZXR1cm4gbnVsbDsKCiAgICAgICAgICAvLyByZXR1cm5z
IHRoZSBib3JkZXItYm94IGRpbWVuc2lvbnMgcmF0aGVyIHRoYW4gdGhlIGNvbnRl
bnQtYm94CiAgICAgICAgICAvLyBkaW1lbnNpb25zLCBzbyB3ZSBzdWJ0cmFjdCBw
YWRkaW5nIGFuZCBib3JkZXJzIGZyb20gdGhlIHZhbHVlCiAgICAgICAgICB2YXIg
ZGltID0gcGFyc2VJbnQocHJvY2VlZChlbGVtZW50LCBzdHlsZSksIDEwKTsKCiAg
ICAgICAgICBpZiAoZGltICE9PSBlbGVtZW50WydvZmZzZXQnICsgc3R5bGUuY2Fw
aXRhbGl6ZSgpXSkKICAgICAgICAgICAgcmV0dXJuIGRpbSArICdweCc7CgogICAg
ICAgICAgdmFyIHByb3BlcnRpZXM7CiAgICAgICAgICBpZiAoc3R5bGUgPT09ICdo
ZWlnaHQnKSB7CiAgICAgICAgICAgIHByb3BlcnRpZXMgPSBbJ2JvcmRlci10b3At
d2lkdGgnLCAncGFkZGluZy10b3AnLAogICAgICAgICAgICAgJ3BhZGRpbmctYm90
dG9tJywgJ2JvcmRlci1ib3R0b20td2lkdGgnXTsKICAgICAgICAgIH0KICAgICAg
ICAgIGVsc2UgewogICAgICAgICAgICBwcm9wZXJ0aWVzID0gWydib3JkZXItbGVm
dC13aWR0aCcsICdwYWRkaW5nLWxlZnQnLAogICAgICAgICAgICAgJ3BhZGRpbmct
cmlnaHQnLCAnYm9yZGVyLXJpZ2h0LXdpZHRoJ107CiAgICAgICAgICB9CiAgICAg
ICAgICByZXR1cm4gcHJvcGVydGllcy5pbmplY3QoZGltLCBmdW5jdGlvbihtZW1v
LCBwcm9wZXJ0eSkgewogICAgICAgICAgICB2YXIgdmFsID0gcHJvY2VlZChlbGVt
ZW50LCBwcm9wZXJ0eSk7CiAgICAgICAgICAgIHJldHVybiB2YWwgPT09IG51bGwg
PyBtZW1vIDogbWVtbyAtIHBhcnNlSW50KHZhbCwgMTApOwogICAgICAgICAgfSkg
KyAncHgnOwogICAgICAgIGRlZmF1bHQ6IHJldHVybiBwcm9jZWVkKGVsZW1lbnQs
IHN0eWxlKTsKICAgICAgfQogICAgfQogICk7CgogIEVsZW1lbnQuTWV0aG9kcy5y
ZWFkQXR0cmlidXRlID0gRWxlbWVudC5NZXRob2RzLnJlYWRBdHRyaWJ1dGUud3Jh
cCgKICAgIGZ1bmN0aW9uKHByb2NlZWQsIGVsZW1lbnQsIGF0dHJpYnV0ZSkgewog
ICAgICBpZiAoYXR0cmlidXRlID09PSAndGl0bGUnKSByZXR1cm4gZWxlbWVudC50
aXRsZTsKICAgICAgcmV0dXJuIHByb2NlZWQoZWxlbWVudCwgYXR0cmlidXRlKTsK
ICAgIH0KICApOwp9CgplbHNlIGlmIChQcm90b3R5cGUuQnJvd3Nlci5JRSkgewog
IC8vIElFIGRvZXNuJ3QgcmVwb3J0IG9mZnNldHMgY29ycmVjdGx5IGZvciBzdGF0
aWMgZWxlbWVudHMsIHNvIHdlIGNoYW5nZSB0aGVtCiAgLy8gdG8gInJlbGF0aXZl
IiB0byBnZXQgdGhlIHZhbHVlcywgdGhlbiBjaGFuZ2UgdGhlbSBiYWNrLgogIEVs
ZW1lbnQuTWV0aG9kcy5nZXRPZmZzZXRQYXJlbnQgPSBFbGVtZW50Lk1ldGhvZHMu
Z2V0T2Zmc2V0UGFyZW50LndyYXAoCiAgICBmdW5jdGlvbihwcm9jZWVkLCBlbGVt
ZW50KSB7CiAgICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgICAvLyBJRSB0
aHJvd3MgYW4gZXJyb3IgaWYgZWxlbWVudCBpcyBub3QgaW4gZG9jdW1lbnQKICAg
ICAgdHJ5IHsgZWxlbWVudC5vZmZzZXRQYXJlbnQgfQogICAgICBjYXRjaChlKSB7
IHJldHVybiAkKGRvY3VtZW50LmJvZHkpIH0KICAgICAgdmFyIHBvc2l0aW9uID0g
ZWxlbWVudC5nZXRTdHlsZSgncG9zaXRpb24nKTsKICAgICAgaWYgKHBvc2l0aW9u
ICE9PSAnc3RhdGljJykgcmV0dXJuIHByb2NlZWQoZWxlbWVudCk7CiAgICAgIGVs
ZW1lbnQuc2V0U3R5bGUoeyBwb3NpdGlvbjogJ3JlbGF0aXZlJyB9KTsKICAgICAg
dmFyIHZhbHVlID0gcHJvY2VlZChlbGVtZW50KTsKICAgICAgZWxlbWVudC5zZXRT
dHlsZSh7IHBvc2l0aW9uOiBwb3NpdGlvbiB9KTsKICAgICAgcmV0dXJuIHZhbHVl
OwogICAgfQogICk7CgogICR3KCdwb3NpdGlvbmVkT2Zmc2V0IHZpZXdwb3J0T2Zm
c2V0JykuZWFjaChmdW5jdGlvbihtZXRob2QpIHsKICAgIEVsZW1lbnQuTWV0aG9k
c1ttZXRob2RdID0gRWxlbWVudC5NZXRob2RzW21ldGhvZF0ud3JhcCgKICAgICAg
ZnVuY3Rpb24ocHJvY2VlZCwgZWxlbWVudCkgewogICAgICAgIGVsZW1lbnQgPSAk
KGVsZW1lbnQpOwogICAgICAgIHRyeSB7IGVsZW1lbnQub2Zmc2V0UGFyZW50IH0K
ICAgICAgICBjYXRjaChlKSB7IHJldHVybiBFbGVtZW50Ll9yZXR1cm5PZmZzZXQo
MCwwKSB9CiAgICAgICAgdmFyIHBvc2l0aW9uID0gZWxlbWVudC5nZXRTdHlsZSgn
cG9zaXRpb24nKTsKICAgICAgICBpZiAocG9zaXRpb24gIT09ICdzdGF0aWMnKSBy
ZXR1cm4gcHJvY2VlZChlbGVtZW50KTsKICAgICAgICAvLyBUcmlnZ2VyIGhhc0xh
eW91dCBvbiB0aGUgb2Zmc2V0IHBhcmVudCBzbyB0aGF0IElFNiByZXBvcnRzCiAg
ICAgICAgLy8gYWNjdXJhdGUgb2Zmc2V0VG9wIGFuZCBvZmZzZXRMZWZ0IHZhbHVl
cyBmb3IgcG9zaXRpb246IGZpeGVkLgogICAgICAgIHZhciBvZmZzZXRQYXJlbnQg
PSBlbGVtZW50LmdldE9mZnNldFBhcmVudCgpOwogICAgICAgIGlmIChvZmZzZXRQ
YXJlbnQgJiYgb2Zmc2V0UGFyZW50LmdldFN0eWxlKCdwb3NpdGlvbicpID09PSAn
Zml4ZWQnKQogICAgICAgICAgb2Zmc2V0UGFyZW50LnNldFN0eWxlKHsgem9vbTog
MSB9KTsKICAgICAgICBlbGVtZW50LnNldFN0eWxlKHsgcG9zaXRpb246ICdyZWxh
dGl2ZScgfSk7CiAgICAgICAgdmFyIHZhbHVlID0gcHJvY2VlZChlbGVtZW50KTsK
ICAgICAgICBlbGVtZW50LnNldFN0eWxlKHsgcG9zaXRpb246IHBvc2l0aW9uIH0p
OwogICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgfQogICAgKTsKICB9KTsKCiAg
RWxlbWVudC5NZXRob2RzLmN1bXVsYXRpdmVPZmZzZXQgPSBFbGVtZW50Lk1ldGhv
ZHMuY3VtdWxhdGl2ZU9mZnNldC53cmFwKAogICAgZnVuY3Rpb24ocHJvY2VlZCwg
ZWxlbWVudCkgewogICAgICB0cnkgeyBlbGVtZW50Lm9mZnNldFBhcmVudCB9CiAg
ICAgIGNhdGNoKGUpIHsgcmV0dXJuIEVsZW1lbnQuX3JldHVybk9mZnNldCgwLDAp
IH0KICAgICAgcmV0dXJuIHByb2NlZWQoZWxlbWVudCk7CiAgICB9CiAgKTsKCiAg
RWxlbWVudC5NZXRob2RzLmdldFN0eWxlID0gZnVuY3Rpb24oZWxlbWVudCwgc3R5
bGUpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgc3R5bGUgPSAoc3R5
bGUgPT0gJ2Zsb2F0JyB8fCBzdHlsZSA9PSAnY3NzRmxvYXQnKSA/ICdzdHlsZUZs
b2F0JyA6IHN0eWxlLmNhbWVsaXplKCk7CiAgICB2YXIgdmFsdWUgPSBlbGVtZW50
LnN0eWxlW3N0eWxlXTsKICAgIGlmICghdmFsdWUgJiYgZWxlbWVudC5jdXJyZW50
U3R5bGUpIHZhbHVlID0gZWxlbWVudC5jdXJyZW50U3R5bGVbc3R5bGVdOwoKICAg
IGlmIChzdHlsZSA9PSAnb3BhY2l0eScpIHsKICAgICAgaWYgKHZhbHVlID0gKGVs
ZW1lbnQuZ2V0U3R5bGUoJ2ZpbHRlcicpIHx8ICcnKS5tYXRjaCgvYWxwaGFcKG9w
YWNpdHk9KC4qKVwpLykpCiAgICAgICAgaWYgKHZhbHVlWzFdKSByZXR1cm4gcGFy
c2VGbG9hdCh2YWx1ZVsxXSkgLyAxMDA7CiAgICAgIHJldHVybiAxLjA7CiAgICB9
CgogICAgaWYgKHZhbHVlID09ICdhdXRvJykgewogICAgICBpZiAoKHN0eWxlID09
ICd3aWR0aCcgfHwgc3R5bGUgPT0gJ2hlaWdodCcpICYmIChlbGVtZW50LmdldFN0
eWxlKCdkaXNwbGF5JykgIT0gJ25vbmUnKSkKICAgICAgICByZXR1cm4gZWxlbWVu
dFsnb2Zmc2V0JyArIHN0eWxlLmNhcGl0YWxpemUoKV0gKyAncHgnOwogICAgICBy
ZXR1cm4gbnVsbDsKICAgIH0KICAgIHJldHVybiB2YWx1ZTsKICB9OwoKICBFbGVt
ZW50Lk1ldGhvZHMuc2V0T3BhY2l0eSA9IGZ1bmN0aW9uKGVsZW1lbnQsIHZhbHVl
KSB7CiAgICBmdW5jdGlvbiBzdHJpcEFscGhhKGZpbHRlcil7CiAgICAgIHJldHVy
biBmaWx0ZXIucmVwbGFjZSgvYWxwaGFcKFteXCldKlwpL2dpLCcnKTsKICAgIH0K
ICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgdmFyIGN1cnJlbnRTdHlsZSA9
IGVsZW1lbnQuY3VycmVudFN0eWxlOwogICAgaWYgKChjdXJyZW50U3R5bGUgJiYg
IWN1cnJlbnRTdHlsZS5oYXNMYXlvdXQpIHx8CiAgICAgICghY3VycmVudFN0eWxl
ICYmIGVsZW1lbnQuc3R5bGUuem9vbSA9PSAnbm9ybWFsJykpCiAgICAgICAgZWxl
bWVudC5zdHlsZS56b29tID0gMTsKCiAgICB2YXIgZmlsdGVyID0gZWxlbWVudC5n
ZXRTdHlsZSgnZmlsdGVyJyksIHN0eWxlID0gZWxlbWVudC5zdHlsZTsKICAgIGlm
ICh2YWx1ZSA9PSAxIHx8IHZhbHVlID09PSAnJykgewogICAgICAoZmlsdGVyID0g
c3RyaXBBbHBoYShmaWx0ZXIpKSA/CiAgICAgICAgc3R5bGUuZmlsdGVyID0gZmls
dGVyIDogc3R5bGUucmVtb3ZlQXR0cmlidXRlKCdmaWx0ZXInKTsKICAgICAgcmV0
dXJuIGVsZW1lbnQ7CiAgICB9IGVsc2UgaWYgKHZhbHVlIDwgMC4wMDAwMSkgdmFs
dWUgPSAwOwogICAgc3R5bGUuZmlsdGVyID0gc3RyaXBBbHBoYShmaWx0ZXIpICsK
ICAgICAgJ2FscGhhKG9wYWNpdHk9JyArICh2YWx1ZSAqIDEwMCkgKyAnKSc7CiAg
ICByZXR1cm4gZWxlbWVudDsKICB9OwoKICBFbGVtZW50Ll9hdHRyaWJ1dGVUcmFu
c2xhdGlvbnMgPSB7CiAgICByZWFkOiB7CiAgICAgIG5hbWVzOiB7CiAgICAgICAg
J2NsYXNzJzogJ2NsYXNzTmFtZScsCiAgICAgICAgJ2Zvcic6ICAgJ2h0bWxGb3In
CiAgICAgIH0sCiAgICAgIHZhbHVlczogewogICAgICAgIF9nZXRBdHRyOiBmdW5j
dGlvbihlbGVtZW50LCBhdHRyaWJ1dGUpIHsKICAgICAgICAgIHJldHVybiBlbGVt
ZW50LmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIDIpOwogICAgICAgIH0sCiAgICAg
ICAgX2dldEF0dHJOb2RlOiBmdW5jdGlvbihlbGVtZW50LCBhdHRyaWJ1dGUpIHsK
ICAgICAgICAgIHZhciBub2RlID0gZWxlbWVudC5nZXRBdHRyaWJ1dGVOb2RlKGF0
dHJpYnV0ZSk7CiAgICAgICAgICByZXR1cm4gbm9kZSA/IG5vZGUudmFsdWUgOiAi
IjsKICAgICAgICB9LAogICAgICAgIF9nZXRFdjogZnVuY3Rpb24oZWxlbWVudCwg
YXR0cmlidXRlKSB7CiAgICAgICAgICBhdHRyaWJ1dGUgPSBlbGVtZW50LmdldEF0
dHJpYnV0ZShhdHRyaWJ1dGUpOwogICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZSA/
IGF0dHJpYnV0ZS50b1N0cmluZygpLnNsaWNlKDIzLCAtMikgOiBudWxsOwogICAg
ICAgIH0sCiAgICAgICAgX2ZsYWc6IGZ1bmN0aW9uKGVsZW1lbnQsIGF0dHJpYnV0
ZSkgewogICAgICAgICAgcmV0dXJuICQoZWxlbWVudCkuaGFzQXR0cmlidXRlKGF0
dHJpYnV0ZSkgPyBhdHRyaWJ1dGUgOiBudWxsOwogICAgICAgIH0sCiAgICAgICAg
c3R5bGU6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgICAgICAgIHJldHVybiBlbGVt
ZW50LnN0eWxlLmNzc1RleHQudG9Mb3dlckNhc2UoKTsKICAgICAgICB9LAogICAg
ICAgIHRpdGxlOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICAgICAgICByZXR1cm4g
ZWxlbWVudC50aXRsZTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9OwoKICBF
bGVtZW50Ll9hdHRyaWJ1dGVUcmFuc2xhdGlvbnMud3JpdGUgPSB7CiAgICBuYW1l
czogT2JqZWN0LmV4dGVuZCh7CiAgICAgIGNlbGxwYWRkaW5nOiAnY2VsbFBhZGRp
bmcnLAogICAgICBjZWxsc3BhY2luZzogJ2NlbGxTcGFjaW5nJwogICAgfSwgRWxl
bWVudC5fYXR0cmlidXRlVHJhbnNsYXRpb25zLnJlYWQubmFtZXMpLAogICAgdmFs
dWVzOiB7CiAgICAgIGNoZWNrZWQ6IGZ1bmN0aW9uKGVsZW1lbnQsIHZhbHVlKSB7
CiAgICAgICAgZWxlbWVudC5jaGVja2VkID0gISF2YWx1ZTsKICAgICAgfSwKCiAg
ICAgIHN0eWxlOiBmdW5jdGlvbihlbGVtZW50LCB2YWx1ZSkgewogICAgICAgIGVs
ZW1lbnQuc3R5bGUuY3NzVGV4dCA9IHZhbHVlID8gdmFsdWUgOiAnJzsKICAgICAg
fQogICAgfQogIH07CgogIEVsZW1lbnQuX2F0dHJpYnV0ZVRyYW5zbGF0aW9ucy5o
YXMgPSB7fTsKCiAgJHcoJ2NvbFNwYW4gcm93U3BhbiB2QWxpZ24gZGF0ZVRpbWUg
YWNjZXNzS2V5IHRhYkluZGV4ICcgKwogICAgICAnZW5jVHlwZSBtYXhMZW5ndGgg
cmVhZE9ubHkgbG9uZ0Rlc2MgZnJhbWVCb3JkZXInKS5lYWNoKGZ1bmN0aW9uKGF0
dHIpIHsKICAgIEVsZW1lbnQuX2F0dHJpYnV0ZVRyYW5zbGF0aW9ucy53cml0ZS5u
YW1lc1thdHRyLnRvTG93ZXJDYXNlKCldID0gYXR0cjsKICAgIEVsZW1lbnQuX2F0
dHJpYnV0ZVRyYW5zbGF0aW9ucy5oYXNbYXR0ci50b0xvd2VyQ2FzZSgpXSA9IGF0
dHI7CiAgfSk7CgogIChmdW5jdGlvbih2KSB7CiAgICBPYmplY3QuZXh0ZW5kKHYs
IHsKICAgICAgaHJlZjogICAgICAgIHYuX2dldEF0dHIsCiAgICAgIHNyYzogICAg
ICAgICB2Ll9nZXRBdHRyLAogICAgICB0eXBlOiAgICAgICAgdi5fZ2V0QXR0ciwK
ICAgICAgYWN0aW9uOiAgICAgIHYuX2dldEF0dHJOb2RlLAogICAgICBkaXNhYmxl
ZDogICAgdi5fZmxhZywKICAgICAgY2hlY2tlZDogICAgIHYuX2ZsYWcsCiAgICAg
IHJlYWRvbmx5OiAgICB2Ll9mbGFnLAogICAgICBtdWx0aXBsZTogICAgdi5fZmxh
ZywKICAgICAgb25sb2FkOiAgICAgIHYuX2dldEV2LAogICAgICBvbnVubG9hZDog
ICAgdi5fZ2V0RXYsCiAgICAgIG9uY2xpY2s6ICAgICB2Ll9nZXRFdiwKICAgICAg
b25kYmxjbGljazogIHYuX2dldEV2LAogICAgICBvbm1vdXNlZG93bjogdi5fZ2V0
RXYsCiAgICAgIG9ubW91c2V1cDogICB2Ll9nZXRFdiwKICAgICAgb25tb3VzZW92
ZXI6IHYuX2dldEV2LAogICAgICBvbm1vdXNlbW92ZTogdi5fZ2V0RXYsCiAgICAg
IG9ubW91c2VvdXQ6ICB2Ll9nZXRFdiwKICAgICAgb25mb2N1czogICAgIHYuX2dl
dEV2LAogICAgICBvbmJsdXI6ICAgICAgdi5fZ2V0RXYsCiAgICAgIG9ua2V5cHJl
c3M6ICB2Ll9nZXRFdiwKICAgICAgb25rZXlkb3duOiAgIHYuX2dldEV2LAogICAg
ICBvbmtleXVwOiAgICAgdi5fZ2V0RXYsCiAgICAgIG9uc3VibWl0OiAgICB2Ll9n
ZXRFdiwKICAgICAgb25yZXNldDogICAgIHYuX2dldEV2LAogICAgICBvbnNlbGVj
dDogICAgdi5fZ2V0RXYsCiAgICAgIG9uY2hhbmdlOiAgICB2Ll9nZXRFdgogICAg
fSk7CiAgfSkoRWxlbWVudC5fYXR0cmlidXRlVHJhbnNsYXRpb25zLnJlYWQudmFs
dWVzKTsKfQoKZWxzZSBpZiAoUHJvdG90eXBlLkJyb3dzZXIuR2Vja28gJiYgL3J2
OjFcLjhcLjAvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpIHsKICBFbGVtZW50
Lk1ldGhvZHMuc2V0T3BhY2l0eSA9IGZ1bmN0aW9uKGVsZW1lbnQsIHZhbHVlKSB7
CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIGVsZW1lbnQuc3R5bGUub3Bh
Y2l0eSA9ICh2YWx1ZSA9PSAxKSA/IDAuOTk5OTk5IDoKICAgICAgKHZhbHVlID09
PSAnJykgPyAnJyA6ICh2YWx1ZSA8IDAuMDAwMDEpID8gMCA6IHZhbHVlOwogICAg
cmV0dXJuIGVsZW1lbnQ7CiAgfTsKfQoKZWxzZSBpZiAoUHJvdG90eXBlLkJyb3dz
ZXIuV2ViS2l0KSB7CiAgRWxlbWVudC5NZXRob2RzLnNldE9wYWNpdHkgPSBmdW5j
dGlvbihlbGVtZW50LCB2YWx1ZSkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7
CiAgICBlbGVtZW50LnN0eWxlLm9wYWNpdHkgPSAodmFsdWUgPT0gMSB8fCB2YWx1
ZSA9PT0gJycpID8gJycgOgogICAgICAodmFsdWUgPCAwLjAwMDAxKSA/IDAgOiB2
YWx1ZTsKCiAgICBpZiAodmFsdWUgPT0gMSkKICAgICAgaWYoZWxlbWVudC50YWdO
YW1lLnRvVXBwZXJDYXNlKCkgPT0gJ0lNRycgJiYgZWxlbWVudC53aWR0aCkgewog
ICAgICAgIGVsZW1lbnQud2lkdGgrKzsgZWxlbWVudC53aWR0aC0tOwogICAgICB9
IGVsc2UgdHJ5IHsKICAgICAgICB2YXIgbiA9IGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCcgJyk7CiAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChuKTsKICAgICAg
ICBlbGVtZW50LnJlbW92ZUNoaWxkKG4pOwogICAgICB9IGNhdGNoIChlKSB7IH0K
CiAgICByZXR1cm4gZWxlbWVudDsKICB9OwoKICAvLyBTYWZhcmkgcmV0dXJucyBt
YXJnaW5zIG9uIGJvZHkgd2hpY2ggaXMgaW5jb3JyZWN0IGlmIHRoZSBjaGlsZCBp
cyBhYnNvbHV0ZWx5CiAgLy8gcG9zaXRpb25lZC4gIEZvciBwZXJmb3JtYW5jZSBy
ZWFzb25zLCByZWRlZmluZSBFbGVtZW50I2N1bXVsYXRpdmVPZmZzZXQgZm9yCiAg
Ly8gS0hUTUwvV2ViS2l0IG9ubHkuCiAgRWxlbWVudC5NZXRob2RzLmN1bXVsYXRp
dmVPZmZzZXQgPSBmdW5jdGlvbihlbGVtZW50KSB7CiAgICB2YXIgdmFsdWVUID0g
MCwgdmFsdWVMID0gMDsKICAgIGRvIHsKICAgICAgdmFsdWVUICs9IGVsZW1lbnQu
b2Zmc2V0VG9wICB8fCAwOwogICAgICB2YWx1ZUwgKz0gZWxlbWVudC5vZmZzZXRM
ZWZ0IHx8IDA7CiAgICAgIGlmIChlbGVtZW50Lm9mZnNldFBhcmVudCA9PSBkb2N1
bWVudC5ib2R5KQogICAgICAgIGlmIChFbGVtZW50LmdldFN0eWxlKGVsZW1lbnQs
ICdwb3NpdGlvbicpID09ICdhYnNvbHV0ZScpIGJyZWFrOwoKICAgICAgZWxlbWVu
dCA9IGVsZW1lbnQub2Zmc2V0UGFyZW50OwogICAgfSB3aGlsZSAoZWxlbWVudCk7
CgogICAgcmV0dXJuIEVsZW1lbnQuX3JldHVybk9mZnNldCh2YWx1ZUwsIHZhbHVl
VCk7CiAgfTsKfQoKaWYgKFByb3RvdHlwZS5Ccm93c2VyLklFIHx8IFByb3RvdHlw
ZS5Ccm93c2VyLk9wZXJhKSB7CiAgLy8gSUUgYW5kIE9wZXJhIGFyZSBtaXNzaW5n
IC5pbm5lckhUTUwgc3VwcG9ydCBmb3IgVEFCTEUtcmVsYXRlZCBhbmQgU0VMRUNU
IGVsZW1lbnRzCiAgRWxlbWVudC5NZXRob2RzLnVwZGF0ZSA9IGZ1bmN0aW9uKGVs
ZW1lbnQsIGNvbnRlbnQpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwoKICAg
IGlmIChjb250ZW50ICYmIGNvbnRlbnQudG9FbGVtZW50KSBjb250ZW50ID0gY29u
dGVudC50b0VsZW1lbnQoKTsKICAgIGlmIChPYmplY3QuaXNFbGVtZW50KGNvbnRl
bnQpKSByZXR1cm4gZWxlbWVudC51cGRhdGUoKS5pbnNlcnQoY29udGVudCk7Cgog
ICAgY29udGVudCA9IE9iamVjdC50b0hUTUwoY29udGVudCk7CiAgICB2YXIgdGFn
TmFtZSA9IGVsZW1lbnQudGFnTmFtZS50b1VwcGVyQ2FzZSgpOwoKICAgIGlmICh0
YWdOYW1lIGluIEVsZW1lbnQuX2luc2VydGlvblRyYW5zbGF0aW9ucy50YWdzKSB7
CiAgICAgICRBKGVsZW1lbnQuY2hpbGROb2RlcykuZWFjaChmdW5jdGlvbihub2Rl
KSB7IGVsZW1lbnQucmVtb3ZlQ2hpbGQobm9kZSkgfSk7CiAgICAgIEVsZW1lbnQu
X2dldENvbnRlbnRGcm9tQW5vbnltb3VzRWxlbWVudCh0YWdOYW1lLCBjb250ZW50
LnN0cmlwU2NyaXB0cygpKQogICAgICAgIC5lYWNoKGZ1bmN0aW9uKG5vZGUpIHsg
ZWxlbWVudC5hcHBlbmRDaGlsZChub2RlKSB9KTsKICAgIH0KICAgIGVsc2UgZWxl
bWVudC5pbm5lckhUTUwgPSBjb250ZW50LnN0cmlwU2NyaXB0cygpOwoKICAgIGNv
bnRlbnQuZXZhbFNjcmlwdHMuYmluZChjb250ZW50KS5kZWZlcigpOwogICAgcmV0
dXJuIGVsZW1lbnQ7CiAgfTsKfQoKaWYgKCdvdXRlckhUTUwnIGluIGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKSB7CiAgRWxlbWVudC5NZXRob2RzLnJlcGxh
Y2UgPSBmdW5jdGlvbihlbGVtZW50LCBjb250ZW50KSB7CiAgICBlbGVtZW50ID0g
JChlbGVtZW50KTsKCiAgICBpZiAoY29udGVudCAmJiBjb250ZW50LnRvRWxlbWVu
dCkgY29udGVudCA9IGNvbnRlbnQudG9FbGVtZW50KCk7CiAgICBpZiAoT2JqZWN0
LmlzRWxlbWVudChjb250ZW50KSkgewogICAgICBlbGVtZW50LnBhcmVudE5vZGUu
cmVwbGFjZUNoaWxkKGNvbnRlbnQsIGVsZW1lbnQpOwogICAgICByZXR1cm4gZWxl
bWVudDsKICAgIH0KCiAgICBjb250ZW50ID0gT2JqZWN0LnRvSFRNTChjb250ZW50
KTsKICAgIHZhciBwYXJlbnQgPSBlbGVtZW50LnBhcmVudE5vZGUsIHRhZ05hbWUg
PSBwYXJlbnQudGFnTmFtZS50b1VwcGVyQ2FzZSgpOwoKICAgIGlmIChFbGVtZW50
Ll9pbnNlcnRpb25UcmFuc2xhdGlvbnMudGFnc1t0YWdOYW1lXSkgewogICAgICB2
YXIgbmV4dFNpYmxpbmcgPSBlbGVtZW50Lm5leHQoKTsKICAgICAgdmFyIGZyYWdt
ZW50cyA9IEVsZW1lbnQuX2dldENvbnRlbnRGcm9tQW5vbnltb3VzRWxlbWVudCh0
YWdOYW1lLCBjb250ZW50LnN0cmlwU2NyaXB0cygpKTsKICAgICAgcGFyZW50LnJl
bW92ZUNoaWxkKGVsZW1lbnQpOwogICAgICBpZiAobmV4dFNpYmxpbmcpCiAgICAg
ICAgZnJhZ21lbnRzLmVhY2goZnVuY3Rpb24obm9kZSkgeyBwYXJlbnQuaW5zZXJ0
QmVmb3JlKG5vZGUsIG5leHRTaWJsaW5nKSB9KTsKICAgICAgZWxzZQogICAgICAg
IGZyYWdtZW50cy5lYWNoKGZ1bmN0aW9uKG5vZGUpIHsgcGFyZW50LmFwcGVuZENo
aWxkKG5vZGUpIH0pOwogICAgfQogICAgZWxzZSBlbGVtZW50Lm91dGVySFRNTCA9
IGNvbnRlbnQuc3RyaXBTY3JpcHRzKCk7CgogICAgY29udGVudC5ldmFsU2NyaXB0
cy5iaW5kKGNvbnRlbnQpLmRlZmVyKCk7CiAgICByZXR1cm4gZWxlbWVudDsKICB9
Owp9CgpFbGVtZW50Ll9yZXR1cm5PZmZzZXQgPSBmdW5jdGlvbihsLCB0KSB7CiAg
dmFyIHJlc3VsdCA9IFtsLCB0XTsKICByZXN1bHQubGVmdCA9IGw7CiAgcmVzdWx0
LnRvcCA9IHQ7CiAgcmV0dXJuIHJlc3VsdDsKfTsKCkVsZW1lbnQuX2dldENvbnRl
bnRGcm9tQW5vbnltb3VzRWxlbWVudCA9IGZ1bmN0aW9uKHRhZ05hbWUsIGh0bWwp
IHsKICB2YXIgZGl2ID0gbmV3IEVsZW1lbnQoJ2RpdicpLCB0ID0gRWxlbWVudC5f
aW5zZXJ0aW9uVHJhbnNsYXRpb25zLnRhZ3NbdGFnTmFtZV07CiAgaWYgKHQpIHsK
ICAgIGRpdi5pbm5lckhUTUwgPSB0WzBdICsgaHRtbCArIHRbMV07CiAgICB0WzJd
LnRpbWVzKGZ1bmN0aW9uKCkgeyBkaXYgPSBkaXYuZmlyc3RDaGlsZCB9KTsKICB9
IGVsc2UgZGl2LmlubmVySFRNTCA9IGh0bWw7CiAgcmV0dXJuICRBKGRpdi5jaGls
ZE5vZGVzKTsKfTsKCkVsZW1lbnQuX2luc2VydGlvblRyYW5zbGF0aW9ucyA9IHsK
ICBiZWZvcmU6IGZ1bmN0aW9uKGVsZW1lbnQsIG5vZGUpIHsKICAgIGVsZW1lbnQu
cGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobm9kZSwgZWxlbWVudCk7CiAgfSwKICB0
b3A6IGZ1bmN0aW9uKGVsZW1lbnQsIG5vZGUpIHsKICAgIGVsZW1lbnQuaW5zZXJ0
QmVmb3JlKG5vZGUsIGVsZW1lbnQuZmlyc3RDaGlsZCk7CiAgfSwKICBib3R0b206
IGZ1bmN0aW9uKGVsZW1lbnQsIG5vZGUpIHsKICAgIGVsZW1lbnQuYXBwZW5kQ2hp
bGQobm9kZSk7CiAgfSwKICBhZnRlcjogZnVuY3Rpb24oZWxlbWVudCwgbm9kZSkg
ewogICAgZWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShub2RlLCBlbGVt
ZW50Lm5leHRTaWJsaW5nKTsKICB9LAogIHRhZ3M6IHsKICAgIFRBQkxFOiAgWyc8
dGFibGU+JywgICAgICAgICAgICAgICAgJzwvdGFibGU+JywgICAgICAgICAgICAg
ICAgICAgMV0sCiAgICBUQk9EWTogIFsnPHRhYmxlPjx0Ym9keT4nLCAgICAgICAg
ICc8L3Rib2R5PjwvdGFibGU+JywgICAgICAgICAgIDJdLAogICAgVFI6ICAgICBb
Jzx0YWJsZT48dGJvZHk+PHRyPicsICAgICAnPC90cj48L3Rib2R5PjwvdGFibGU+
JywgICAgICAzXSwKICAgIFREOiAgICAgWyc8dGFibGU+PHRib2R5Pjx0cj48dGQ+
JywgJzwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+JywgNF0sCiAgICBTRUxFQ1Q6
IFsnPHNlbGVjdD4nLCAgICAgICAgICAgICAgICc8L3NlbGVjdD4nLCAgICAgICAg
ICAgICAgICAgIDFdCiAgfQp9OwoKKGZ1bmN0aW9uKCkgewogIE9iamVjdC5leHRl
bmQodGhpcy50YWdzLCB7CiAgICBUSEVBRDogdGhpcy50YWdzLlRCT0RZLAogICAg
VEZPT1Q6IHRoaXMudGFncy5UQk9EWSwKICAgIFRIOiAgICB0aGlzLnRhZ3MuVEQK
ICB9KTsKfSkuY2FsbChFbGVtZW50Ll9pbnNlcnRpb25UcmFuc2xhdGlvbnMpOwoK
RWxlbWVudC5NZXRob2RzLlNpbXVsYXRlZCA9IHsKICBoYXNBdHRyaWJ1dGU6IGZ1
bmN0aW9uKGVsZW1lbnQsIGF0dHJpYnV0ZSkgewogICAgYXR0cmlidXRlID0gRWxl
bWVudC5fYXR0cmlidXRlVHJhbnNsYXRpb25zLmhhc1thdHRyaWJ1dGVdIHx8IGF0
dHJpYnV0ZTsKICAgIHZhciBub2RlID0gJChlbGVtZW50KS5nZXRBdHRyaWJ1dGVO
b2RlKGF0dHJpYnV0ZSk7CiAgICByZXR1cm4gISEobm9kZSAmJiBub2RlLnNwZWNp
ZmllZCk7CiAgfQp9OwoKRWxlbWVudC5NZXRob2RzLkJ5VGFnID0geyB9OwoKT2Jq
ZWN0LmV4dGVuZChFbGVtZW50LCBFbGVtZW50Lk1ldGhvZHMpOwoKaWYgKCFQcm90
b3R5cGUuQnJvd3NlckZlYXR1cmVzLkVsZW1lbnRFeHRlbnNpb25zICYmCiAgICBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVsnX19wcm90b19fJ10pIHsKICB3
aW5kb3cuSFRNTEVsZW1lbnQgPSB7IH07CiAgd2luZG93LkhUTUxFbGVtZW50LnBy
b3RvdHlwZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpWydfX3Byb3Rv
X18nXTsKICBQcm90b3R5cGUuQnJvd3NlckZlYXR1cmVzLkVsZW1lbnRFeHRlbnNp
b25zID0gdHJ1ZTsKfQoKRWxlbWVudC5leHRlbmQgPSAoZnVuY3Rpb24oKSB7CiAg
aWYgKFByb3RvdHlwZS5Ccm93c2VyRmVhdHVyZXMuU3BlY2lmaWNFbGVtZW50RXh0
ZW5zaW9ucykKICAgIHJldHVybiBQcm90b3R5cGUuSzsKCiAgdmFyIE1ldGhvZHMg
PSB7IH0sIEJ5VGFnID0gRWxlbWVudC5NZXRob2RzLkJ5VGFnOwoKICB2YXIgZXh0
ZW5kID0gT2JqZWN0LmV4dGVuZChmdW5jdGlvbihlbGVtZW50KSB7CiAgICBpZiAo
IWVsZW1lbnQgfHwgZWxlbWVudC5fZXh0ZW5kZWRCeVByb3RvdHlwZSB8fAogICAg
ICAgIGVsZW1lbnQubm9kZVR5cGUgIT0gMSB8fCBlbGVtZW50ID09IHdpbmRvdykg
cmV0dXJuIGVsZW1lbnQ7CgogICAgdmFyIG1ldGhvZHMgPSBPYmplY3QuY2xvbmUo
TWV0aG9kcyksCiAgICAgIHRhZ05hbWUgPSBlbGVtZW50LnRhZ05hbWUudG9VcHBl
ckNhc2UoKSwgcHJvcGVydHksIHZhbHVlOwoKICAgIC8vIGV4dGVuZCBtZXRob2Rz
IGZvciBzcGVjaWZpYyB0YWdzCiAgICBpZiAoQnlUYWdbdGFnTmFtZV0pIE9iamVj
dC5leHRlbmQobWV0aG9kcywgQnlUYWdbdGFnTmFtZV0pOwoKICAgIGZvciAocHJv
cGVydHkgaW4gbWV0aG9kcykgewogICAgICB2YWx1ZSA9IG1ldGhvZHNbcHJvcGVy
dHldOwogICAgICBpZiAoT2JqZWN0LmlzRnVuY3Rpb24odmFsdWUpICYmICEocHJv
cGVydHkgaW4gZWxlbWVudCkpCiAgICAgICAgZWxlbWVudFtwcm9wZXJ0eV0gPSB2
YWx1ZS5tZXRob2RpemUoKTsKICAgIH0KCiAgICBlbGVtZW50Ll9leHRlbmRlZEJ5
UHJvdG90eXBlID0gUHJvdG90eXBlLmVtcHR5RnVuY3Rpb247CiAgICByZXR1cm4g
ZWxlbWVudDsKCiAgfSwgewogICAgcmVmcmVzaDogZnVuY3Rpb24oKSB7CiAgICAg
IC8vIGV4dGVuZCBtZXRob2RzIGZvciBhbGwgdGFncyAoU2FmYXJpIGRvZXNuJ3Qg
bmVlZCB0aGlzKQogICAgICBpZiAoIVByb3RvdHlwZS5Ccm93c2VyRmVhdHVyZXMu
RWxlbWVudEV4dGVuc2lvbnMpIHsKICAgICAgICBPYmplY3QuZXh0ZW5kKE1ldGhv
ZHMsIEVsZW1lbnQuTWV0aG9kcyk7CiAgICAgICAgT2JqZWN0LmV4dGVuZChNZXRo
b2RzLCBFbGVtZW50Lk1ldGhvZHMuU2ltdWxhdGVkKTsKICAgICAgfQogICAgfQog
IH0pOwoKICBleHRlbmQucmVmcmVzaCgpOwogIHJldHVybiBleHRlbmQ7Cn0pKCk7
CgpFbGVtZW50Lmhhc0F0dHJpYnV0ZSA9IGZ1bmN0aW9uKGVsZW1lbnQsIGF0dHJp
YnV0ZSkgewogIGlmIChlbGVtZW50Lmhhc0F0dHJpYnV0ZSkgcmV0dXJuIGVsZW1l
bnQuaGFzQXR0cmlidXRlKGF0dHJpYnV0ZSk7CiAgcmV0dXJuIEVsZW1lbnQuTWV0
aG9kcy5TaW11bGF0ZWQuaGFzQXR0cmlidXRlKGVsZW1lbnQsIGF0dHJpYnV0ZSk7
Cn07CgpFbGVtZW50LmFkZE1ldGhvZHMgPSBmdW5jdGlvbihtZXRob2RzKSB7CiAg
dmFyIEYgPSBQcm90b3R5cGUuQnJvd3NlckZlYXR1cmVzLCBUID0gRWxlbWVudC5N
ZXRob2RzLkJ5VGFnOwoKICBpZiAoIW1ldGhvZHMpIHsKICAgIE9iamVjdC5leHRl
bmQoRm9ybSwgRm9ybS5NZXRob2RzKTsKICAgIE9iamVjdC5leHRlbmQoRm9ybS5F
bGVtZW50LCBGb3JtLkVsZW1lbnQuTWV0aG9kcyk7CiAgICBPYmplY3QuZXh0ZW5k
KEVsZW1lbnQuTWV0aG9kcy5CeVRhZywgewogICAgICAiRk9STSI6ICAgICBPYmpl
Y3QuY2xvbmUoRm9ybS5NZXRob2RzKSwKICAgICAgIklOUFVUIjogICAgT2JqZWN0
LmNsb25lKEZvcm0uRWxlbWVudC5NZXRob2RzKSwKICAgICAgIlNFTEVDVCI6ICAg
T2JqZWN0LmNsb25lKEZvcm0uRWxlbWVudC5NZXRob2RzKSwKICAgICAgIlRFWFRB
UkVBIjogT2JqZWN0LmNsb25lKEZvcm0uRWxlbWVudC5NZXRob2RzKQogICAgfSk7
CiAgfQoKICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAyKSB7CiAgICB2YXIgdGFn
TmFtZSA9IG1ldGhvZHM7CiAgICBtZXRob2RzID0gYXJndW1lbnRzWzFdOwogIH0K
CiAgaWYgKCF0YWdOYW1lKSBPYmplY3QuZXh0ZW5kKEVsZW1lbnQuTWV0aG9kcywg
bWV0aG9kcyB8fCB7IH0pOwogIGVsc2UgewogICAgaWYgKE9iamVjdC5pc0FycmF5
KHRhZ05hbWUpKSB0YWdOYW1lLmVhY2goZXh0ZW5kKTsKICAgIGVsc2UgZXh0ZW5k
KHRhZ05hbWUpOwogIH0KCiAgZnVuY3Rpb24gZXh0ZW5kKHRhZ05hbWUpIHsKICAg
IHRhZ05hbWUgPSB0YWdOYW1lLnRvVXBwZXJDYXNlKCk7CiAgICBpZiAoIUVsZW1l
bnQuTWV0aG9kcy5CeVRhZ1t0YWdOYW1lXSkKICAgICAgRWxlbWVudC5NZXRob2Rz
LkJ5VGFnW3RhZ05hbWVdID0geyB9OwogICAgT2JqZWN0LmV4dGVuZChFbGVtZW50
Lk1ldGhvZHMuQnlUYWdbdGFnTmFtZV0sIG1ldGhvZHMpOwogIH0KCiAgZnVuY3Rp
b24gY29weShtZXRob2RzLCBkZXN0aW5hdGlvbiwgb25seUlmQWJzZW50KSB7CiAg
ICBvbmx5SWZBYnNlbnQgPSBvbmx5SWZBYnNlbnQgfHwgZmFsc2U7CiAgICBmb3Ig
KHZhciBwcm9wZXJ0eSBpbiBtZXRob2RzKSB7CiAgICAgIHZhciB2YWx1ZSA9IG1l
dGhvZHNbcHJvcGVydHldOwogICAgICBpZiAoIU9iamVjdC5pc0Z1bmN0aW9uKHZh
bHVlKSkgY29udGludWU7CiAgICAgIGlmICghb25seUlmQWJzZW50IHx8ICEocHJv
cGVydHkgaW4gZGVzdGluYXRpb24pKQogICAgICAgIGRlc3RpbmF0aW9uW3Byb3Bl
cnR5XSA9IHZhbHVlLm1ldGhvZGl6ZSgpOwogICAgfQogIH0KCiAgZnVuY3Rpb24g
ZmluZERPTUNsYXNzKHRhZ05hbWUpIHsKICAgIHZhciBrbGFzczsKICAgIHZhciB0
cmFucyA9IHsKICAgICAgIk9QVEdST1VQIjogIk9wdEdyb3VwIiwgIlRFWFRBUkVB
IjogIlRleHRBcmVhIiwgIlAiOiAiUGFyYWdyYXBoIiwKICAgICAgIkZJRUxEU0VU
IjogIkZpZWxkU2V0IiwgIlVMIjogIlVMaXN0IiwgIk9MIjogIk9MaXN0IiwgIkRM
IjogIkRMaXN0IiwKICAgICAgIkRJUiI6ICJEaXJlY3RvcnkiLCAiSDEiOiAiSGVh
ZGluZyIsICJIMiI6ICJIZWFkaW5nIiwgIkgzIjogIkhlYWRpbmciLAogICAgICAi
SDQiOiAiSGVhZGluZyIsICJINSI6ICJIZWFkaW5nIiwgIkg2IjogIkhlYWRpbmci
LCAiUSI6ICJRdW90ZSIsCiAgICAgICJJTlMiOiAiTW9kIiwgIkRFTCI6ICJNb2Qi
LCAiQSI6ICJBbmNob3IiLCAiSU1HIjogIkltYWdlIiwgIkNBUFRJT04iOgogICAg
ICAiVGFibGVDYXB0aW9uIiwgIkNPTCI6ICJUYWJsZUNvbCIsICJDT0xHUk9VUCI6
ICJUYWJsZUNvbCIsICJUSEVBRCI6CiAgICAgICJUYWJsZVNlY3Rpb24iLCAiVEZP
T1QiOiAiVGFibGVTZWN0aW9uIiwgIlRCT0RZIjogIlRhYmxlU2VjdGlvbiIsICJU
UiI6CiAgICAgICJUYWJsZVJvdyIsICJUSCI6ICJUYWJsZUNlbGwiLCAiVEQiOiAi
VGFibGVDZWxsIiwgIkZSQU1FU0VUIjoKICAgICAgIkZyYW1lU2V0IiwgIklGUkFN
RSI6ICJJRnJhbWUiCiAgICB9OwogICAgaWYgKHRyYW5zW3RhZ05hbWVdKSBrbGFz
cyA9ICdIVE1MJyArIHRyYW5zW3RhZ05hbWVdICsgJ0VsZW1lbnQnOwogICAgaWYg
KHdpbmRvd1trbGFzc10pIHJldHVybiB3aW5kb3dba2xhc3NdOwogICAga2xhc3Mg
PSAnSFRNTCcgKyB0YWdOYW1lICsgJ0VsZW1lbnQnOwogICAgaWYgKHdpbmRvd1tr
bGFzc10pIHJldHVybiB3aW5kb3dba2xhc3NdOwogICAga2xhc3MgPSAnSFRNTCcg
KyB0YWdOYW1lLmNhcGl0YWxpemUoKSArICdFbGVtZW50JzsKICAgIGlmICh3aW5k
b3dba2xhc3NdKSByZXR1cm4gd2luZG93W2tsYXNzXTsKCiAgICB3aW5kb3dba2xh
c3NdID0geyB9OwogICAgd2luZG93W2tsYXNzXS5wcm90b3R5cGUgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KHRhZ05hbWUpWydfX3Byb3RvX18nXTsKICAgIHJldHVy
biB3aW5kb3dba2xhc3NdOwogIH0KCiAgaWYgKEYuRWxlbWVudEV4dGVuc2lvbnMp
IHsKICAgIGNvcHkoRWxlbWVudC5NZXRob2RzLCBIVE1MRWxlbWVudC5wcm90b3R5
cGUpOwogICAgY29weShFbGVtZW50Lk1ldGhvZHMuU2ltdWxhdGVkLCBIVE1MRWxl
bWVudC5wcm90b3R5cGUsIHRydWUpOwogIH0KCiAgaWYgKEYuU3BlY2lmaWNFbGVt
ZW50RXh0ZW5zaW9ucykgewogICAgZm9yICh2YXIgdGFnIGluIEVsZW1lbnQuTWV0
aG9kcy5CeVRhZykgewogICAgICB2YXIga2xhc3MgPSBmaW5kRE9NQ2xhc3ModGFn
KTsKICAgICAgaWYgKE9iamVjdC5pc1VuZGVmaW5lZChrbGFzcykpIGNvbnRpbnVl
OwogICAgICBjb3B5KFRbdGFnXSwga2xhc3MucHJvdG90eXBlKTsKICAgIH0KICB9
CgogIE9iamVjdC5leHRlbmQoRWxlbWVudCwgRWxlbWVudC5NZXRob2RzKTsKICBk
ZWxldGUgRWxlbWVudC5CeVRhZzsKCiAgaWYgKEVsZW1lbnQuZXh0ZW5kLnJlZnJl
c2gpIEVsZW1lbnQuZXh0ZW5kLnJlZnJlc2goKTsKICBFbGVtZW50LmNhY2hlID0g
eyB9Owp9OwoKZG9jdW1lbnQudmlld3BvcnQgPSB7CiAgZ2V0RGltZW5zaW9uczog
ZnVuY3Rpb24oKSB7CiAgICB2YXIgZGltZW5zaW9ucyA9IHsgfSwgQiA9IFByb3Rv
dHlwZS5Ccm93c2VyOwogICAgJHcoJ3dpZHRoIGhlaWdodCcpLmVhY2goZnVuY3Rp
b24oZCkgewogICAgICB2YXIgRCA9IGQuY2FwaXRhbGl6ZSgpOwogICAgICBpZiAo
Qi5XZWJLaXQgJiYgIWRvY3VtZW50LmV2YWx1YXRlKSB7CiAgICAgICAgLy8gU2Fm
YXJpIDwzLjAgbmVlZHMgc2VsZi5pbm5lcldpZHRoL0hlaWdodAogICAgICAgIGRp
bWVuc2lvbnNbZF0gPSBzZWxmWydpbm5lcicgKyBEXTsKICAgICAgfSBlbHNlIGlm
IChCLk9wZXJhICYmIHBhcnNlRmxvYXQod2luZG93Lm9wZXJhLnZlcnNpb24oKSkg
PCA5LjUpIHsKICAgICAgICAvLyBPcGVyYSA8OS41IG5lZWRzIGRvY3VtZW50LmJv
ZHkuY2xpZW50V2lkdGgvSGVpZ2h0CiAgICAgICAgZGltZW5zaW9uc1tkXSA9IGRv
Y3VtZW50LmJvZHlbJ2NsaWVudCcgKyBEXQogICAgICB9IGVsc2UgewogICAgICAg
IGRpbWVuc2lvbnNbZF0gPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbJ2NsaWVu
dCcgKyBEXTsKICAgICAgfQogICAgfSk7CiAgICByZXR1cm4gZGltZW5zaW9uczsK
ICB9LAoKICBnZXRXaWR0aDogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhpcy5n
ZXREaW1lbnNpb25zKCkud2lkdGg7CiAgfSwKCiAgZ2V0SGVpZ2h0OiBmdW5jdGlv
bigpIHsKICAgIHJldHVybiB0aGlzLmdldERpbWVuc2lvbnMoKS5oZWlnaHQ7CiAg
fSwKCiAgZ2V0U2Nyb2xsT2Zmc2V0czogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4g
RWxlbWVudC5fcmV0dXJuT2Zmc2V0KAogICAgICB3aW5kb3cucGFnZVhPZmZzZXQg
fHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQgfHwgZG9jdW1l
bnQuYm9keS5zY3JvbGxMZWZ0LAogICAgICB3aW5kb3cucGFnZVlPZmZzZXQgfHwg
ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fCBkb2N1bWVudC5i
b2R5LnNjcm9sbFRvcCk7CiAgfQp9OwovKiBQb3J0aW9ucyBvZiB0aGUgU2VsZWN0
b3IgY2xhc3MgYXJlIGRlcml2ZWQgZnJvbSBKYWNrIFNsb2N1bSdzIERvbVF1ZXJ5
LAogKiBwYXJ0IG9mIFlVSS1FeHQgdmVyc2lvbiAwLjQwLCBkaXN0cmlidXRlZCB1
bmRlciB0aGUgdGVybXMgb2YgYW4gTUlULXN0eWxlCiAqIGxpY2Vuc2UuICBQbGVh
c2Ugc2VlIGh0dHA6Ly93d3cueXVpLWV4dC5jb20vIGZvciBtb3JlIGluZm9ybWF0
aW9uLiAqLwoKdmFyIFNlbGVjdG9yID0gQ2xhc3MuY3JlYXRlKHsKICBpbml0aWFs
aXplOiBmdW5jdGlvbihleHByZXNzaW9uKSB7CiAgICB0aGlzLmV4cHJlc3Npb24g
PSBleHByZXNzaW9uLnN0cmlwKCk7CgogICAgaWYgKHRoaXMuc2hvdWxkVXNlU2Vs
ZWN0b3JzQVBJKCkpIHsKICAgICAgdGhpcy5tb2RlID0gJ3NlbGVjdG9yc0FQSSc7
CiAgICB9IGVsc2UgaWYgKHRoaXMuc2hvdWxkVXNlWFBhdGgoKSkgewogICAgICB0
aGlzLm1vZGUgPSAneHBhdGgnOwogICAgICB0aGlzLmNvbXBpbGVYUGF0aE1hdGNo
ZXIoKTsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMubW9kZSA9ICJub3JtYWwiOwog
ICAgICB0aGlzLmNvbXBpbGVNYXRjaGVyKCk7CiAgICB9CgogIH0sCgogIHNob3Vs
ZFVzZVhQYXRoOiBmdW5jdGlvbigpIHsKICAgIGlmICghUHJvdG90eXBlLkJyb3dz
ZXJGZWF0dXJlcy5YUGF0aCkgcmV0dXJuIGZhbHNlOwoKICAgIHZhciBlID0gdGhp
cy5leHByZXNzaW9uOwoKICAgIC8vIFNhZmFyaSAzIGNob2tlcyBvbiA6Ki1vZi10
eXBlIGFuZCA6ZW1wdHkKICAgIGlmIChQcm90b3R5cGUuQnJvd3Nlci5XZWJLaXQg
JiYKICAgICAoZS5pbmNsdWRlKCItb2YtdHlwZSIpIHx8IGUuaW5jbHVkZSgiOmVt
cHR5IikpKQogICAgICByZXR1cm4gZmFsc2U7CgogICAgLy8gWFBhdGggY2FuJ3Qg
ZG8gbmFtZXNwYWNlZCBhdHRyaWJ1dGVzLCBub3IgY2FuIGl0IHJlYWQKICAgIC8v
IHRoZSAiY2hlY2tlZCIgcHJvcGVydHkgZnJvbSBET00gbm9kZXMKICAgIGlmICgo
LyhcW1tcdy1dKj86fDpjaGVja2VkKS8pLnRlc3QoZSkpCiAgICAgIHJldHVybiBm
YWxzZTsKCiAgICByZXR1cm4gdHJ1ZTsKICB9LAoKICBzaG91bGRVc2VTZWxlY3Rv
cnNBUEk6IGZ1bmN0aW9uKCkgewogICAgaWYgKCFQcm90b3R5cGUuQnJvd3NlckZl
YXR1cmVzLlNlbGVjdG9yc0FQSSkgcmV0dXJuIGZhbHNlOwoKICAgIGlmICghU2Vs
ZWN0b3IuX2RpdikgU2VsZWN0b3IuX2RpdiA9IG5ldyBFbGVtZW50KCdkaXYnKTsK
CiAgICAvLyBNYWtlIHN1cmUgdGhlIGJyb3dzZXIgdHJlYXRzIHRoZSBzZWxlY3Rv
ciBhcyB2YWxpZC4gVGVzdCBvbiBhbgogICAgLy8gaXNvbGF0ZWQgZWxlbWVudCB0
byBtaW5pbWl6ZSBjb3N0IG9mIHRoaXMgY2hlY2suCiAgICB0cnkgewogICAgICBT
ZWxlY3Rvci5fZGl2LnF1ZXJ5U2VsZWN0b3IodGhpcy5leHByZXNzaW9uKTsKICAg
IH0gY2F0Y2goZSkgewogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgcmV0
dXJuIHRydWU7CiAgfSwKCiAgY29tcGlsZU1hdGNoZXI6IGZ1bmN0aW9uKCkgewog
ICAgdmFyIGUgPSB0aGlzLmV4cHJlc3Npb24sIHBzID0gU2VsZWN0b3IucGF0dGVy
bnMsIGggPSBTZWxlY3Rvci5oYW5kbGVycywKICAgICAgICBjID0gU2VsZWN0b3Iu
Y3JpdGVyaWEsIGxlLCBwLCBtOwoKICAgIGlmIChTZWxlY3Rvci5fY2FjaGVbZV0p
IHsKICAgICAgdGhpcy5tYXRjaGVyID0gU2VsZWN0b3IuX2NhY2hlW2VdOwogICAg
ICByZXR1cm47CiAgICB9CgogICAgdGhpcy5tYXRjaGVyID0gWyJ0aGlzLm1hdGNo
ZXIgPSBmdW5jdGlvbihyb290KSB7IiwKICAgICAgICAgICAgICAgICAgICAidmFy
IHIgPSByb290LCBoID0gU2VsZWN0b3IuaGFuZGxlcnMsIGMgPSBmYWxzZSwgbjsi
XTsKCiAgICB3aGlsZSAoZSAmJiBsZSAhPSBlICYmICgvXFMvKS50ZXN0KGUpKSB7
CiAgICAgIGxlID0gZTsKICAgICAgZm9yICh2YXIgaSBpbiBwcykgewogICAgICAg
IHAgPSBwc1tpXTsKICAgICAgICBpZiAobSA9IGUubWF0Y2gocCkpIHsKICAgICAg
ICAgIHRoaXMubWF0Y2hlci5wdXNoKE9iamVjdC5pc0Z1bmN0aW9uKGNbaV0pID8g
Y1tpXShtKSA6CiAgICAgICAgICAgIG5ldyBUZW1wbGF0ZShjW2ldKS5ldmFsdWF0
ZShtKSk7CiAgICAgICAgICBlID0gZS5yZXBsYWNlKG1bMF0sICcnKTsKICAgICAg
ICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgfQogICAgfQoKICAgIHRoaXMubWF0
Y2hlci5wdXNoKCJyZXR1cm4gaC51bmlxdWUobik7XG59Iik7CiAgICBldmFsKHRo
aXMubWF0Y2hlci5qb2luKCdcbicpKTsKICAgIFNlbGVjdG9yLl9jYWNoZVt0aGlz
LmV4cHJlc3Npb25dID0gdGhpcy5tYXRjaGVyOwogIH0sCgogIGNvbXBpbGVYUGF0
aE1hdGNoZXI6IGZ1bmN0aW9uKCkgewogICAgdmFyIGUgPSB0aGlzLmV4cHJlc3Np
b24sIHBzID0gU2VsZWN0b3IucGF0dGVybnMsCiAgICAgICAgeCA9IFNlbGVjdG9y
LnhwYXRoLCBsZSwgbTsKCiAgICBpZiAoU2VsZWN0b3IuX2NhY2hlW2VdKSB7CiAg
ICAgIHRoaXMueHBhdGggPSBTZWxlY3Rvci5fY2FjaGVbZV07IHJldHVybjsKICAg
IH0KCiAgICB0aGlzLm1hdGNoZXIgPSBbJy4vLyonXTsKICAgIHdoaWxlIChlICYm
IGxlICE9IGUgJiYgKC9cUy8pLnRlc3QoZSkpIHsKICAgICAgbGUgPSBlOwogICAg
ICBmb3IgKHZhciBpIGluIHBzKSB7CiAgICAgICAgaWYgKG0gPSBlLm1hdGNoKHBz
W2ldKSkgewogICAgICAgICAgdGhpcy5tYXRjaGVyLnB1c2goT2JqZWN0LmlzRnVu
Y3Rpb24oeFtpXSkgPyB4W2ldKG0pIDoKICAgICAgICAgICAgbmV3IFRlbXBsYXRl
KHhbaV0pLmV2YWx1YXRlKG0pKTsKICAgICAgICAgIGUgPSBlLnJlcGxhY2UobVsw
XSwgJycpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICB9CiAgICB9
CgogICAgdGhpcy54cGF0aCA9IHRoaXMubWF0Y2hlci5qb2luKCcnKTsKICAgIFNl
bGVjdG9yLl9jYWNoZVt0aGlzLmV4cHJlc3Npb25dID0gdGhpcy54cGF0aDsKICB9
LAoKICBmaW5kRWxlbWVudHM6IGZ1bmN0aW9uKHJvb3QpIHsKICAgIHJvb3QgPSBy
b290IHx8IGRvY3VtZW50OwogICAgdmFyIGUgPSB0aGlzLmV4cHJlc3Npb24sIHJl
c3VsdHM7CgogICAgc3dpdGNoICh0aGlzLm1vZGUpIHsKICAgICAgY2FzZSAnc2Vs
ZWN0b3JzQVBJJzoKICAgICAgICAvLyBxdWVyeVNlbGVjdG9yQWxsIHF1ZXJpZXMg
ZG9jdW1lbnQtd2lkZSwgdGhlbiBmaWx0ZXJzIHRvIGRlc2NlbmRhbnRzCiAgICAg
ICAgLy8gb2YgdGhlIGNvbnRleHQgZWxlbWVudC4gVGhhdCdzIG5vdCB3aGF0IHdl
IHdhbnQuCiAgICAgICAgLy8gQWRkIGFuIGV4cGxpY2l0IGNvbnRleHQgdG8gdGhl
IHNlbGVjdG9yIGlmIG5lY2Vzc2FyeS4KICAgICAgICBpZiAocm9vdCAhPT0gZG9j
dW1lbnQpIHsKICAgICAgICAgIHZhciBvbGRJZCA9IHJvb3QuaWQsIGlkID0gJChy
b290KS5pZGVudGlmeSgpOwogICAgICAgICAgZSA9ICIjIiArIGlkICsgIiAiICsg
ZTsKICAgICAgICB9CgogICAgICAgIHJlc3VsdHMgPSAkQShyb290LnF1ZXJ5U2Vs
ZWN0b3JBbGwoZSkpLm1hcChFbGVtZW50LmV4dGVuZCk7CiAgICAgICAgcm9vdC5p
ZCA9IG9sZElkOwoKICAgICAgICByZXR1cm4gcmVzdWx0czsKICAgICAgY2FzZSAn
eHBhdGgnOgogICAgICAgIHJldHVybiBkb2N1bWVudC5fZ2V0RWxlbWVudHNCeVhQ
YXRoKHRoaXMueHBhdGgsIHJvb3QpOwogICAgICBkZWZhdWx0OgogICAgICAgcmV0
dXJuIHRoaXMubWF0Y2hlcihyb290KTsKICAgIH0KICB9LAoKICBtYXRjaDogZnVu
Y3Rpb24oZWxlbWVudCkgewogICAgdGhpcy50b2tlbnMgPSBbXTsKCiAgICB2YXIg
ZSA9IHRoaXMuZXhwcmVzc2lvbiwgcHMgPSBTZWxlY3Rvci5wYXR0ZXJucywgYXMg
PSBTZWxlY3Rvci5hc3NlcnRpb25zOwogICAgdmFyIGxlLCBwLCBtOwoKICAgIHdo
aWxlIChlICYmIGxlICE9PSBlICYmICgvXFMvKS50ZXN0KGUpKSB7CiAgICAgIGxl
ID0gZTsKICAgICAgZm9yICh2YXIgaSBpbiBwcykgewogICAgICAgIHAgPSBwc1tp
XTsKICAgICAgICBpZiAobSA9IGUubWF0Y2gocCkpIHsKICAgICAgICAgIC8vIHVz
ZSB0aGUgU2VsZWN0b3IuYXNzZXJ0aW9ucyBtZXRob2RzIHVubGVzcyB0aGUgc2Vs
ZWN0b3IKICAgICAgICAgIC8vIGlzIHRvbyBjb21wbGV4LgogICAgICAgICAgaWYg
KGFzW2ldKSB7CiAgICAgICAgICAgIHRoaXMudG9rZW5zLnB1c2goW2ksIE9iamVj
dC5jbG9uZShtKV0pOwogICAgICAgICAgICBlID0gZS5yZXBsYWNlKG1bMF0sICcn
KTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIC8vIHJlbHVjdGFudGx5
IGRvIGEgZG9jdW1lbnQtd2lkZSBzZWFyY2gKICAgICAgICAgICAgLy8gYW5kIGxv
b2sgZm9yIGEgbWF0Y2ggaW4gdGhlIGFycmF5CiAgICAgICAgICAgIHJldHVybiB0
aGlzLmZpbmRFbGVtZW50cyhkb2N1bWVudCkuaW5jbHVkZShlbGVtZW50KTsKICAg
ICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KCiAgICB2YXIgbWF0Y2gg
PSB0cnVlLCBuYW1lLCBtYXRjaGVzOwogICAgZm9yICh2YXIgaSA9IDAsIHRva2Vu
OyB0b2tlbiA9IHRoaXMudG9rZW5zW2ldOyBpKyspIHsKICAgICAgbmFtZSA9IHRv
a2VuWzBdLCBtYXRjaGVzID0gdG9rZW5bMV07CiAgICAgIGlmICghU2VsZWN0b3Iu
YXNzZXJ0aW9uc1tuYW1lXShlbGVtZW50LCBtYXRjaGVzKSkgewogICAgICAgIG1h
dGNoID0gZmFsc2U7IGJyZWFrOwogICAgICB9CiAgICB9CgogICAgcmV0dXJuIG1h
dGNoOwogIH0sCgogIHRvU3RyaW5nOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0
aGlzLmV4cHJlc3Npb247CiAgfSwKCiAgaW5zcGVjdDogZnVuY3Rpb24oKSB7CiAg
ICByZXR1cm4gIiM8U2VsZWN0b3I6IiArIHRoaXMuZXhwcmVzc2lvbi5pbnNwZWN0
KCkgKyAiPiI7CiAgfQp9KTsKCk9iamVjdC5leHRlbmQoU2VsZWN0b3IsIHsKICBf
Y2FjaGU6IHsgfSwKCiAgeHBhdGg6IHsKICAgIGRlc2NlbmRhbnQ6ICAgIi8vKiIs
CiAgICBjaGlsZDogICAgICAgICIvKiIsCiAgICBhZGphY2VudDogICAgICIvZm9s
bG93aW5nLXNpYmxpbmc6OipbMV0iLAogICAgbGF0ZXJTaWJsaW5nOiAnL2ZvbGxv
d2luZy1zaWJsaW5nOjoqJywKICAgIHRhZ05hbWU6ICAgICAgZnVuY3Rpb24obSkg
ewogICAgICBpZiAobVsxXSA9PSAnKicpIHJldHVybiAnJzsKICAgICAgcmV0dXJu
ICJbbG9jYWwtbmFtZSgpPSciICsgbVsxXS50b0xvd2VyQ2FzZSgpICsKICAgICAg
ICAgICAgICInIG9yIGxvY2FsLW5hbWUoKT0nIiArIG1bMV0udG9VcHBlckNhc2Uo
KSArICInXSI7CiAgICB9LAogICAgY2xhc3NOYW1lOiAgICAiW2NvbnRhaW5zKGNv
bmNhdCgnICcsIEBjbGFzcywgJyAnKSwgJyAjezF9ICcpXSIsCiAgICBpZDogICAg
ICAgICAgICJbQGlkPScjezF9J10iLAogICAgYXR0clByZXNlbmNlOiBmdW5jdGlv
bihtKSB7CiAgICAgIG1bMV0gPSBtWzFdLnRvTG93ZXJDYXNlKCk7CiAgICAgIHJl
dHVybiBuZXcgVGVtcGxhdGUoIltAI3sxfV0iKS5ldmFsdWF0ZShtKTsKICAgIH0s
CiAgICBhdHRyOiBmdW5jdGlvbihtKSB7CiAgICAgIG1bMV0gPSBtWzFdLnRvTG93
ZXJDYXNlKCk7CiAgICAgIG1bM10gPSBtWzVdIHx8IG1bNl07CiAgICAgIHJldHVy
biBuZXcgVGVtcGxhdGUoU2VsZWN0b3IueHBhdGgub3BlcmF0b3JzW21bMl1dKS5l
dmFsdWF0ZShtKTsKICAgIH0sCiAgICBwc2V1ZG86IGZ1bmN0aW9uKG0pIHsKICAg
ICAgdmFyIGggPSBTZWxlY3Rvci54cGF0aC5wc2V1ZG9zW21bMV1dOwogICAgICBp
ZiAoIWgpIHJldHVybiAnJzsKICAgICAgaWYgKE9iamVjdC5pc0Z1bmN0aW9uKGgp
KSByZXR1cm4gaChtKTsKICAgICAgcmV0dXJuIG5ldyBUZW1wbGF0ZShTZWxlY3Rv
ci54cGF0aC5wc2V1ZG9zW21bMV1dKS5ldmFsdWF0ZShtKTsKICAgIH0sCiAgICBv
cGVyYXRvcnM6IHsKICAgICAgJz0nOiAgIltAI3sxfT0nI3szfSddIiwKICAgICAg
JyE9JzogIltAI3sxfSE9JyN7M30nXSIsCiAgICAgICdePSc6ICJbc3RhcnRzLXdp
dGgoQCN7MX0sICcjezN9JyldIiwKICAgICAgJyQ9JzogIltzdWJzdHJpbmcoQCN7
MX0sIChzdHJpbmctbGVuZ3RoKEAjezF9KSAtIHN0cmluZy1sZW5ndGgoJyN7M30n
KSArIDEpKT0nI3szfSddIiwKICAgICAgJyo9JzogIltjb250YWlucyhAI3sxfSwg
JyN7M30nKV0iLAogICAgICAnfj0nOiAiW2NvbnRhaW5zKGNvbmNhdCgnICcsIEAj
ezF9LCAnICcpLCAnICN7M30gJyldIiwKICAgICAgJ3w9JzogIltjb250YWlucyhj
b25jYXQoJy0nLCBAI3sxfSwgJy0nKSwgJy0jezN9LScpXSIKICAgIH0sCiAgICBw
c2V1ZG9zOiB7CiAgICAgICdmaXJzdC1jaGlsZCc6ICdbbm90KHByZWNlZGluZy1z
aWJsaW5nOjoqKV0nLAogICAgICAnbGFzdC1jaGlsZCc6ICAnW25vdChmb2xsb3dp
bmctc2libGluZzo6KildJywKICAgICAgJ29ubHktY2hpbGQnOiAgJ1tub3QocHJl
Y2VkaW5nLXNpYmxpbmc6Oiogb3IgZm9sbG93aW5nLXNpYmxpbmc6OiopXScsCiAg
ICAgICdlbXB0eSc6ICAgICAgICJbY291bnQoKikgPSAwIGFuZCAoY291bnQodGV4
dCgpKSA9IDApXSIsCiAgICAgICdjaGVja2VkJzogICAgICJbQGNoZWNrZWRdIiwK
ICAgICAgJ2Rpc2FibGVkJzogICAgIlsoQGRpc2FibGVkKSBhbmQgKEB0eXBlIT0n
aGlkZGVuJyldIiwKICAgICAgJ2VuYWJsZWQnOiAgICAgIltub3QoQGRpc2FibGVk
KSBhbmQgKEB0eXBlIT0naGlkZGVuJyldIiwKICAgICAgJ25vdCc6IGZ1bmN0aW9u
KG0pIHsKICAgICAgICB2YXIgZSA9IG1bNl0sIHAgPSBTZWxlY3Rvci5wYXR0ZXJu
cywKICAgICAgICAgICAgeCA9IFNlbGVjdG9yLnhwYXRoLCBsZSwgdjsKCiAgICAg
ICAgdmFyIGV4Y2x1c2lvbiA9IFtdOwogICAgICAgIHdoaWxlIChlICYmIGxlICE9
IGUgJiYgKC9cUy8pLnRlc3QoZSkpIHsKICAgICAgICAgIGxlID0gZTsKICAgICAg
ICAgIGZvciAodmFyIGkgaW4gcCkgewogICAgICAgICAgICBpZiAobSA9IGUubWF0
Y2gocFtpXSkpIHsKICAgICAgICAgICAgICB2ID0gT2JqZWN0LmlzRnVuY3Rpb24o
eFtpXSkgPyB4W2ldKG0pIDogbmV3IFRlbXBsYXRlKHhbaV0pLmV2YWx1YXRlKG0p
OwogICAgICAgICAgICAgIGV4Y2x1c2lvbi5wdXNoKCIoIiArIHYuc3Vic3RyaW5n
KDEsIHYubGVuZ3RoIC0gMSkgKyAiKSIpOwogICAgICAgICAgICAgIGUgPSBlLnJl
cGxhY2UobVswXSwgJycpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAiW25vdCgi
ICsgZXhjbHVzaW9uLmpvaW4oIiBhbmQgIikgKyAiKV0iOwogICAgICB9LAogICAg
ICAnbnRoLWNoaWxkJzogICAgICBmdW5jdGlvbihtKSB7CiAgICAgICAgcmV0dXJu
IFNlbGVjdG9yLnhwYXRoLnBzZXVkb3MubnRoKCIoY291bnQoLi9wcmVjZWRpbmct
c2libGluZzo6KikgKyAxKSAiLCBtKTsKICAgICAgfSwKICAgICAgJ250aC1sYXN0
LWNoaWxkJzogZnVuY3Rpb24obSkgewogICAgICAgIHJldHVybiBTZWxlY3Rvci54
cGF0aC5wc2V1ZG9zLm50aCgiKGNvdW50KC4vZm9sbG93aW5nLXNpYmxpbmc6Oiop
ICsgMSkgIiwgbSk7CiAgICAgIH0sCiAgICAgICdudGgtb2YtdHlwZSc6ICAgIGZ1
bmN0aW9uKG0pIHsKICAgICAgICByZXR1cm4gU2VsZWN0b3IueHBhdGgucHNldWRv
cy5udGgoInBvc2l0aW9uKCkgIiwgbSk7CiAgICAgIH0sCiAgICAgICdudGgtbGFz
dC1vZi10eXBlJzogZnVuY3Rpb24obSkgewogICAgICAgIHJldHVybiBTZWxlY3Rv
ci54cGF0aC5wc2V1ZG9zLm50aCgiKGxhc3QoKSArIDEgLSBwb3NpdGlvbigpKSAi
LCBtKTsKICAgICAgfSwKICAgICAgJ2ZpcnN0LW9mLXR5cGUnOiAgZnVuY3Rpb24o
bSkgewogICAgICAgIG1bNl0gPSAiMSI7IHJldHVybiBTZWxlY3Rvci54cGF0aC5w
c2V1ZG9zWydudGgtb2YtdHlwZSddKG0pOwogICAgICB9LAogICAgICAnbGFzdC1v
Zi10eXBlJzogICBmdW5jdGlvbihtKSB7CiAgICAgICAgbVs2XSA9ICIxIjsgcmV0
dXJuIFNlbGVjdG9yLnhwYXRoLnBzZXVkb3NbJ250aC1sYXN0LW9mLXR5cGUnXSht
KTsKICAgICAgfSwKICAgICAgJ29ubHktb2YtdHlwZSc6ICAgZnVuY3Rpb24obSkg
ewogICAgICAgIHZhciBwID0gU2VsZWN0b3IueHBhdGgucHNldWRvczsgcmV0dXJu
IHBbJ2ZpcnN0LW9mLXR5cGUnXShtKSArIHBbJ2xhc3Qtb2YtdHlwZSddKG0pOwog
ICAgICB9LAogICAgICBudGg6IGZ1bmN0aW9uKGZyYWdtZW50LCBtKSB7CiAgICAg
ICAgdmFyIG1tLCBmb3JtdWxhID0gbVs2XSwgcHJlZGljYXRlOwogICAgICAgIGlm
IChmb3JtdWxhID09ICdldmVuJykgZm9ybXVsYSA9ICcybiswJzsKICAgICAgICBp
ZiAoZm9ybXVsYSA9PSAnb2RkJykgIGZvcm11bGEgPSAnMm4rMSc7CiAgICAgICAg
aWYgKG1tID0gZm9ybXVsYS5tYXRjaCgvXihcZCspJC8pKSAvLyBkaWdpdCBvbmx5
CiAgICAgICAgICByZXR1cm4gJ1snICsgZnJhZ21lbnQgKyAiPSAiICsgbW1bMV0g
KyAnXSc7CiAgICAgICAgaWYgKG1tID0gZm9ybXVsYS5tYXRjaCgvXigtP1xkKik/
bigoWystXSkoXGQrKSk/LykpIHsgLy8gYW4rYgogICAgICAgICAgaWYgKG1tWzFd
ID09ICItIikgbW1bMV0gPSAtMTsKICAgICAgICAgIHZhciBhID0gbW1bMV0gPyBO
dW1iZXIobW1bMV0pIDogMTsKICAgICAgICAgIHZhciBiID0gbW1bMl0gPyBOdW1i
ZXIobW1bMl0pIDogMDsKICAgICAgICAgIHByZWRpY2F0ZSA9ICJbKCgje2ZyYWdt
ZW50fSAtICN7Yn0pIG1vZCAje2F9ID0gMCkgYW5kICIgKwogICAgICAgICAgIigo
I3tmcmFnbWVudH0gLSAje2J9KSBkaXYgI3thfSA+PSAwKV0iOwogICAgICAgICAg
cmV0dXJuIG5ldyBUZW1wbGF0ZShwcmVkaWNhdGUpLmV2YWx1YXRlKHsKICAgICAg
ICAgICAgZnJhZ21lbnQ6IGZyYWdtZW50LCBhOiBhLCBiOiBiIH0pOwogICAgICAg
IH0KICAgICAgfQogICAgfQogIH0sCgogIGNyaXRlcmlhOiB7CiAgICB0YWdOYW1l
OiAgICAgICduID0gaC50YWdOYW1lKG4sIHIsICIjezF9IiwgYyk7ICAgICAgYyA9
IGZhbHNlOycsCiAgICBjbGFzc05hbWU6ICAgICduID0gaC5jbGFzc05hbWUobiwg
ciwgIiN7MX0iLCBjKTsgICAgYyA9IGZhbHNlOycsCiAgICBpZDogICAgICAgICAg
ICduID0gaC5pZChuLCByLCAiI3sxfSIsIGMpOyAgICAgICAgICAgYyA9IGZhbHNl
OycsCiAgICBhdHRyUHJlc2VuY2U6ICduID0gaC5hdHRyUHJlc2VuY2Uobiwgciwg
IiN7MX0iLCBjKTsgYyA9IGZhbHNlOycsCiAgICBhdHRyOiBmdW5jdGlvbihtKSB7
CiAgICAgIG1bM10gPSAobVs1XSB8fCBtWzZdKTsKICAgICAgcmV0dXJuIG5ldyBU
ZW1wbGF0ZSgnbiA9IGguYXR0cihuLCByLCAiI3sxfSIsICIjezN9IiwgIiN7Mn0i
LCBjKTsgYyA9IGZhbHNlOycpLmV2YWx1YXRlKG0pOwogICAgfSwKICAgIHBzZXVk
bzogZnVuY3Rpb24obSkgewogICAgICBpZiAobVs2XSkgbVs2XSA9IG1bNl0ucmVw
bGFjZSgvIi9nLCAnXFwiJyk7CiAgICAgIHJldHVybiBuZXcgVGVtcGxhdGUoJ24g
PSBoLnBzZXVkbyhuLCAiI3sxfSIsICIjezZ9IiwgciwgYyk7IGMgPSBmYWxzZTsn
KS5ldmFsdWF0ZShtKTsKICAgIH0sCiAgICBkZXNjZW5kYW50OiAgICdjID0gImRl
c2NlbmRhbnQiOycsCiAgICBjaGlsZDogICAgICAgICdjID0gImNoaWxkIjsnLAog
ICAgYWRqYWNlbnQ6ICAgICAnYyA9ICJhZGphY2VudCI7JywKICAgIGxhdGVyU2li
bGluZzogJ2MgPSAibGF0ZXJTaWJsaW5nIjsnCiAgfSwKCiAgcGF0dGVybnM6IHsK
ICAgIC8vIGNvbWJpbmF0b3JzIG11c3QgYmUgbGlzdGVkIGZpcnN0CiAgICAvLyAo
YW5kIGRlc2NlbmRhbnQgbmVlZHMgdG8gYmUgbGFzdCBjb21iaW5hdG9yKQogICAg
bGF0ZXJTaWJsaW5nOiAvXlxzKn5ccyovLAogICAgY2hpbGQ6ICAgICAgICAvXlxz
Kj5ccyovLAogICAgYWRqYWNlbnQ6ICAgICAvXlxzKlwrXHMqLywKICAgIGRlc2Nl
bmRhbnQ6ICAgL15ccy8sCgogICAgLy8gc2VsZWN0b3JzIGZvbGxvdwogICAgdGFn
TmFtZTogICAgICAvXlxzKihcKnxbXHdcLV0rKShcYnwkKT8vLAogICAgaWQ6ICAg
ICAgICAgICAvXiMoW1x3XC1cKl0rKShcYnwkKS8sCiAgICBjbGFzc05hbWU6ICAg
IC9eXC4oW1x3XC1cKl0rKShcYnwkKS8sCiAgICBwc2V1ZG86Ci9eOigoZmlyc3R8
bGFzdHxudGh8bnRoLWxhc3R8b25seSkoLWNoaWxkfC1vZi10eXBlKXxlbXB0eXxj
aGVja2VkfChlbnxkaXMpYWJsZWR8bm90KShcKCguKj8pXCkpPyhcYnwkfCg/PVxz
fFs6K34+XSkpLywKICAgIGF0dHJQcmVzZW5jZTogL15cWygoPzpbXHddKzopP1tc
d10rKVxdLywKICAgIGF0dHI6ICAgICAgICAgL1xbKCg/Oltcdy1dKjopP1tcdy1d
KylccyooPzooWyFeJCp+fF0/PSlccyooKFsnIl0pKFteXDRdKj8pXDR8KFteJyJd
W15cXV0qPykpKT9cXS8KICB9LAoKICAvLyBmb3IgU2VsZWN0b3IubWF0Y2ggYW5k
IEVsZW1lbnQjbWF0Y2gKICBhc3NlcnRpb25zOiB7CiAgICB0YWdOYW1lOiBmdW5j
dGlvbihlbGVtZW50LCBtYXRjaGVzKSB7CiAgICAgIHJldHVybiBtYXRjaGVzWzFd
LnRvVXBwZXJDYXNlKCkgPT0gZWxlbWVudC50YWdOYW1lLnRvVXBwZXJDYXNlKCk7
CiAgICB9LAoKICAgIGNsYXNzTmFtZTogZnVuY3Rpb24oZWxlbWVudCwgbWF0Y2hl
cykgewogICAgICByZXR1cm4gRWxlbWVudC5oYXNDbGFzc05hbWUoZWxlbWVudCwg
bWF0Y2hlc1sxXSk7CiAgICB9LAoKICAgIGlkOiBmdW5jdGlvbihlbGVtZW50LCBt
YXRjaGVzKSB7CiAgICAgIHJldHVybiBlbGVtZW50LmlkID09PSBtYXRjaGVzWzFd
OwogICAgfSwKCiAgICBhdHRyUHJlc2VuY2U6IGZ1bmN0aW9uKGVsZW1lbnQsIG1h
dGNoZXMpIHsKICAgICAgcmV0dXJuIEVsZW1lbnQuaGFzQXR0cmlidXRlKGVsZW1l
bnQsIG1hdGNoZXNbMV0pOwogICAgfSwKCiAgICBhdHRyOiBmdW5jdGlvbihlbGVt
ZW50LCBtYXRjaGVzKSB7CiAgICAgIHZhciBub2RlVmFsdWUgPSBFbGVtZW50LnJl
YWRBdHRyaWJ1dGUoZWxlbWVudCwgbWF0Y2hlc1sxXSk7CiAgICAgIHJldHVybiBu
b2RlVmFsdWUgJiYgU2VsZWN0b3Iub3BlcmF0b3JzW21hdGNoZXNbMl1dKG5vZGVW
YWx1ZSwgbWF0Y2hlc1s1XSB8fCBtYXRjaGVzWzZdKTsKICAgIH0KICB9LAoKICBo
YW5kbGVyczogewogICAgLy8gVVRJTElUWSBGVU5DVElPTlMKICAgIC8vIGpvaW5z
IHR3byBjb2xsZWN0aW9ucwogICAgY29uY2F0OiBmdW5jdGlvbihhLCBiKSB7CiAg
ICAgIGZvciAodmFyIGkgPSAwLCBub2RlOyBub2RlID0gYltpXTsgaSsrKQogICAg
ICAgIGEucHVzaChub2RlKTsKICAgICAgcmV0dXJuIGE7CiAgICB9LAoKICAgIC8v
IG1hcmtzIGFuIGFycmF5IG9mIG5vZGVzIGZvciBjb3VudGluZwogICAgbWFyazog
ZnVuY3Rpb24obm9kZXMpIHsKICAgICAgdmFyIF90cnVlID0gUHJvdG90eXBlLmVt
cHR5RnVuY3Rpb247CiAgICAgIGZvciAodmFyIGkgPSAwLCBub2RlOyBub2RlID0g
bm9kZXNbaV07IGkrKykKICAgICAgICBub2RlLl9jb3VudGVkQnlQcm90b3R5cGUg
PSBfdHJ1ZTsKICAgICAgcmV0dXJuIG5vZGVzOwogICAgfSwKCiAgICB1bm1hcms6
IGZ1bmN0aW9uKG5vZGVzKSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBub2RlOyBu
b2RlID0gbm9kZXNbaV07IGkrKykKICAgICAgICBub2RlLl9jb3VudGVkQnlQcm90
b3R5cGUgPSB1bmRlZmluZWQ7CiAgICAgIHJldHVybiBub2RlczsKICAgIH0sCgog
ICAgLy8gbWFyayBlYWNoIGNoaWxkIG5vZGUgd2l0aCBpdHMgcG9zaXRpb24gKGZv
ciBudGggY2FsbHMpCiAgICAvLyAib2ZUeXBlIiBmbGFnIGluZGljYXRlcyB3aGV0
aGVyIHdlJ3JlIGluZGV4aW5nIGZvciBudGgtb2YtdHlwZQogICAgLy8gcmF0aGVy
IHRoYW4gbnRoLWNoaWxkCiAgICBpbmRleDogZnVuY3Rpb24ocGFyZW50Tm9kZSwg
cmV2ZXJzZSwgb2ZUeXBlKSB7CiAgICAgIHBhcmVudE5vZGUuX2NvdW50ZWRCeVBy
b3RvdHlwZSA9IFByb3RvdHlwZS5lbXB0eUZ1bmN0aW9uOwogICAgICBpZiAocmV2
ZXJzZSkgewogICAgICAgIGZvciAodmFyIG5vZGVzID0gcGFyZW50Tm9kZS5jaGls
ZE5vZGVzLCBpID0gbm9kZXMubGVuZ3RoIC0gMSwgaiA9IDE7IGkgPj0gMDsgaS0t
KSB7CiAgICAgICAgICB2YXIgbm9kZSA9IG5vZGVzW2ldOwogICAgICAgICAgaWYg
KG5vZGUubm9kZVR5cGUgPT0gMSAmJiAoIW9mVHlwZSB8fCBub2RlLl9jb3VudGVk
QnlQcm90b3R5cGUpKSBub2RlLm5vZGVJbmRleCA9IGorKzsKICAgICAgICB9CiAg
ICAgIH0gZWxzZSB7CiAgICAgICAgZm9yICh2YXIgaSA9IDAsIGogPSAxLCBub2Rl
cyA9IHBhcmVudE5vZGUuY2hpbGROb2Rlczsgbm9kZSA9IG5vZGVzW2ldOyBpKysp
CiAgICAgICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PSAxICYmICghb2ZUeXBlIHx8
IG5vZGUuX2NvdW50ZWRCeVByb3RvdHlwZSkpIG5vZGUubm9kZUluZGV4ID0gaisr
OwogICAgICB9CiAgICB9LAoKICAgIC8vIGZpbHRlcnMgb3V0IGR1cGxpY2F0ZXMg
YW5kIGV4dGVuZHMgYWxsIG5vZGVzCiAgICB1bmlxdWU6IGZ1bmN0aW9uKG5vZGVz
KSB7CiAgICAgIGlmIChub2Rlcy5sZW5ndGggPT0gMCkgcmV0dXJuIG5vZGVzOwog
ICAgICB2YXIgcmVzdWx0cyA9IFtdLCBuOwogICAgICBmb3IgKHZhciBpID0gMCwg
bCA9IG5vZGVzLmxlbmd0aDsgaSA8IGw7IGkrKykKICAgICAgICBpZiAoIShuID0g
bm9kZXNbaV0pLl9jb3VudGVkQnlQcm90b3R5cGUpIHsKICAgICAgICAgIG4uX2Nv
dW50ZWRCeVByb3RvdHlwZSA9IFByb3RvdHlwZS5lbXB0eUZ1bmN0aW9uOwogICAg
ICAgICAgcmVzdWx0cy5wdXNoKEVsZW1lbnQuZXh0ZW5kKG4pKTsKICAgICAgICB9
CiAgICAgIHJldHVybiBTZWxlY3Rvci5oYW5kbGVycy51bm1hcmsocmVzdWx0cyk7
CiAgICB9LAoKICAgIC8vIENPTUJJTkFUT1IgRlVOQ1RJT05TCiAgICBkZXNjZW5k
YW50OiBmdW5jdGlvbihub2RlcykgewogICAgICB2YXIgaCA9IFNlbGVjdG9yLmhh
bmRsZXJzOwogICAgICBmb3IgKHZhciBpID0gMCwgcmVzdWx0cyA9IFtdLCBub2Rl
OyBub2RlID0gbm9kZXNbaV07IGkrKykKICAgICAgICBoLmNvbmNhdChyZXN1bHRz
LCBub2RlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCcqJykpOwogICAgICByZXR1cm4g
cmVzdWx0czsKICAgIH0sCgogICAgY2hpbGQ6IGZ1bmN0aW9uKG5vZGVzKSB7CiAg
ICAgIHZhciBoID0gU2VsZWN0b3IuaGFuZGxlcnM7CiAgICAgIGZvciAodmFyIGkg
PSAwLCByZXN1bHRzID0gW10sIG5vZGU7IG5vZGUgPSBub2Rlc1tpXTsgaSsrKSB7
CiAgICAgICAgZm9yICh2YXIgaiA9IDAsIGNoaWxkOyBjaGlsZCA9IG5vZGUuY2hp
bGROb2Rlc1tqXTsgaisrKQogICAgICAgICAgaWYgKGNoaWxkLm5vZGVUeXBlID09
IDEgJiYgY2hpbGQudGFnTmFtZSAhPSAnIScpIHJlc3VsdHMucHVzaChjaGlsZCk7
CiAgICAgIH0KICAgICAgcmV0dXJuIHJlc3VsdHM7CiAgICB9LAoKICAgIGFkamFj
ZW50OiBmdW5jdGlvbihub2RlcykgewogICAgICBmb3IgKHZhciBpID0gMCwgcmVz
dWx0cyA9IFtdLCBub2RlOyBub2RlID0gbm9kZXNbaV07IGkrKykgewogICAgICAg
IHZhciBuZXh0ID0gdGhpcy5uZXh0RWxlbWVudFNpYmxpbmcobm9kZSk7CiAgICAg
ICAgaWYgKG5leHQpIHJlc3VsdHMucHVzaChuZXh0KTsKICAgICAgfQogICAgICBy
ZXR1cm4gcmVzdWx0czsKICAgIH0sCgogICAgbGF0ZXJTaWJsaW5nOiBmdW5jdGlv
bihub2RlcykgewogICAgICB2YXIgaCA9IFNlbGVjdG9yLmhhbmRsZXJzOwogICAg
ICBmb3IgKHZhciBpID0gMCwgcmVzdWx0cyA9IFtdLCBub2RlOyBub2RlID0gbm9k
ZXNbaV07IGkrKykKICAgICAgICBoLmNvbmNhdChyZXN1bHRzLCBFbGVtZW50Lm5l
eHRTaWJsaW5ncyhub2RlKSk7CiAgICAgIHJldHVybiByZXN1bHRzOwogICAgfSwK
CiAgICBuZXh0RWxlbWVudFNpYmxpbmc6IGZ1bmN0aW9uKG5vZGUpIHsKICAgICAg
d2hpbGUgKG5vZGUgPSBub2RlLm5leHRTaWJsaW5nKQogICAgICAgIGlmIChub2Rl
Lm5vZGVUeXBlID09IDEpIHJldHVybiBub2RlOwogICAgICByZXR1cm4gbnVsbDsK
ICAgIH0sCgogICAgcHJldmlvdXNFbGVtZW50U2libGluZzogZnVuY3Rpb24obm9k
ZSkgewogICAgICB3aGlsZSAobm9kZSA9IG5vZGUucHJldmlvdXNTaWJsaW5nKQog
ICAgICAgIGlmIChub2RlLm5vZGVUeXBlID09IDEpIHJldHVybiBub2RlOwogICAg
ICByZXR1cm4gbnVsbDsKICAgIH0sCgogICAgLy8gVE9LRU4gRlVOQ1RJT05TCiAg
ICB0YWdOYW1lOiBmdW5jdGlvbihub2Rlcywgcm9vdCwgdGFnTmFtZSwgY29tYmlu
YXRvcikgewogICAgICB2YXIgdVRhZ05hbWUgPSB0YWdOYW1lLnRvVXBwZXJDYXNl
KCk7CiAgICAgIHZhciByZXN1bHRzID0gW10sIGggPSBTZWxlY3Rvci5oYW5kbGVy
czsKICAgICAgaWYgKG5vZGVzKSB7CiAgICAgICAgaWYgKGNvbWJpbmF0b3IpIHsK
ICAgICAgICAgIC8vIGZhc3RsYW5lIGZvciBvcmRpbmFyeSBkZXNjZW5kYW50IGNv
bWJpbmF0b3JzCiAgICAgICAgICBpZiAoY29tYmluYXRvciA9PSAiZGVzY2VuZGFu
dCIpIHsKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDAsIG5vZGU7IG5vZGUgPSBu
b2Rlc1tpXTsgaSsrKQogICAgICAgICAgICAgIGguY29uY2F0KHJlc3VsdHMsIG5v
ZGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUodGFnTmFtZSkpOwogICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0czsKICAgICAgICAgIH0gZWxzZSBub2RlcyA9IHRoaXNbY29t
YmluYXRvcl0obm9kZXMpOwogICAgICAgICAgaWYgKHRhZ05hbWUgPT0gIioiKSBy
ZXR1cm4gbm9kZXM7CiAgICAgICAgfQogICAgICAgIGZvciAodmFyIGkgPSAwLCBu
b2RlOyBub2RlID0gbm9kZXNbaV07IGkrKykKICAgICAgICAgIGlmIChub2RlLnRh
Z05hbWUudG9VcHBlckNhc2UoKSA9PT0gdVRhZ05hbWUpIHJlc3VsdHMucHVzaChu
b2RlKTsKICAgICAgICByZXR1cm4gcmVzdWx0czsKICAgICAgfSBlbHNlIHJldHVy
biByb290LmdldEVsZW1lbnRzQnlUYWdOYW1lKHRhZ05hbWUpOwogICAgfSwKCiAg
ICBpZDogZnVuY3Rpb24obm9kZXMsIHJvb3QsIGlkLCBjb21iaW5hdG9yKSB7CiAg
ICAgIHZhciB0YXJnZXROb2RlID0gJChpZCksIGggPSBTZWxlY3Rvci5oYW5kbGVy
czsKICAgICAgaWYgKCF0YXJnZXROb2RlKSByZXR1cm4gW107CiAgICAgIGlmICgh
bm9kZXMgJiYgcm9vdCA9PSBkb2N1bWVudCkgcmV0dXJuIFt0YXJnZXROb2RlXTsK
ICAgICAgaWYgKG5vZGVzKSB7CiAgICAgICAgaWYgKGNvbWJpbmF0b3IpIHsKICAg
ICAgICAgIGlmIChjb21iaW5hdG9yID09ICdjaGlsZCcpIHsKICAgICAgICAgICAg
Zm9yICh2YXIgaSA9IDAsIG5vZGU7IG5vZGUgPSBub2Rlc1tpXTsgaSsrKQogICAg
ICAgICAgICAgIGlmICh0YXJnZXROb2RlLnBhcmVudE5vZGUgPT0gbm9kZSkgcmV0
dXJuIFt0YXJnZXROb2RlXTsKICAgICAgICAgIH0gZWxzZSBpZiAoY29tYmluYXRv
ciA9PSAnZGVzY2VuZGFudCcpIHsKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDAs
IG5vZGU7IG5vZGUgPSBub2Rlc1tpXTsgaSsrKQogICAgICAgICAgICAgIGlmIChF
bGVtZW50LmRlc2NlbmRhbnRPZih0YXJnZXROb2RlLCBub2RlKSkgcmV0dXJuIFt0
YXJnZXROb2RlXTsKICAgICAgICAgIH0gZWxzZSBpZiAoY29tYmluYXRvciA9PSAn
YWRqYWNlbnQnKSB7CiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwLCBub2RlOyBu
b2RlID0gbm9kZXNbaV07IGkrKykKICAgICAgICAgICAgICBpZiAoU2VsZWN0b3Iu
aGFuZGxlcnMucHJldmlvdXNFbGVtZW50U2libGluZyh0YXJnZXROb2RlKSA9PSBu
b2RlKQogICAgICAgICAgICAgICAgcmV0dXJuIFt0YXJnZXROb2RlXTsKICAgICAg
ICAgIH0gZWxzZSBub2RlcyA9IGhbY29tYmluYXRvcl0obm9kZXMpOwogICAgICAg
IH0KICAgICAgICBmb3IgKHZhciBpID0gMCwgbm9kZTsgbm9kZSA9IG5vZGVzW2ld
OyBpKyspCiAgICAgICAgICBpZiAobm9kZSA9PSB0YXJnZXROb2RlKSByZXR1cm4g
W3RhcmdldE5vZGVdOwogICAgICAgIHJldHVybiBbXTsKICAgICAgfQogICAgICBy
ZXR1cm4gKHRhcmdldE5vZGUgJiYgRWxlbWVudC5kZXNjZW5kYW50T2YodGFyZ2V0
Tm9kZSwgcm9vdCkpID8gW3RhcmdldE5vZGVdIDogW107CiAgICB9LAoKICAgIGNs
YXNzTmFtZTogZnVuY3Rpb24obm9kZXMsIHJvb3QsIGNsYXNzTmFtZSwgY29tYmlu
YXRvcikgewogICAgICBpZiAobm9kZXMgJiYgY29tYmluYXRvcikgbm9kZXMgPSB0
aGlzW2NvbWJpbmF0b3JdKG5vZGVzKTsKICAgICAgcmV0dXJuIFNlbGVjdG9yLmhh
bmRsZXJzLmJ5Q2xhc3NOYW1lKG5vZGVzLCByb290LCBjbGFzc05hbWUpOwogICAg
fSwKCiAgICBieUNsYXNzTmFtZTogZnVuY3Rpb24obm9kZXMsIHJvb3QsIGNsYXNz
TmFtZSkgewogICAgICBpZiAoIW5vZGVzKSBub2RlcyA9IFNlbGVjdG9yLmhhbmRs
ZXJzLmRlc2NlbmRhbnQoW3Jvb3RdKTsKICAgICAgdmFyIG5lZWRsZSA9ICcgJyAr
IGNsYXNzTmFtZSArICcgJzsKICAgICAgZm9yICh2YXIgaSA9IDAsIHJlc3VsdHMg
PSBbXSwgbm9kZSwgbm9kZUNsYXNzTmFtZTsgbm9kZSA9IG5vZGVzW2ldOyBpKysp
IHsKICAgICAgICBub2RlQ2xhc3NOYW1lID0gbm9kZS5jbGFzc05hbWU7CiAgICAg
ICAgaWYgKG5vZGVDbGFzc05hbWUubGVuZ3RoID09IDApIGNvbnRpbnVlOwogICAg
ICAgIGlmIChub2RlQ2xhc3NOYW1lID09IGNsYXNzTmFtZSB8fCAoJyAnICsgbm9k
ZUNsYXNzTmFtZSArICcgJykuaW5jbHVkZShuZWVkbGUpKQogICAgICAgICAgcmVz
dWx0cy5wdXNoKG5vZGUpOwogICAgICB9CiAgICAgIHJldHVybiByZXN1bHRzOwog
ICAgfSwKCiAgICBhdHRyUHJlc2VuY2U6IGZ1bmN0aW9uKG5vZGVzLCByb290LCBh
dHRyLCBjb21iaW5hdG9yKSB7CiAgICAgIGlmICghbm9kZXMpIG5vZGVzID0gcm9v
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpOwogICAgICBpZiAobm9kZXMgJiYg
Y29tYmluYXRvcikgbm9kZXMgPSB0aGlzW2NvbWJpbmF0b3JdKG5vZGVzKTsKICAg
ICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgICAgZm9yICh2YXIgaSA9IDAsIG5vZGU7
IG5vZGUgPSBub2Rlc1tpXTsgaSsrKQogICAgICAgIGlmIChFbGVtZW50Lmhhc0F0
dHJpYnV0ZShub2RlLCBhdHRyKSkgcmVzdWx0cy5wdXNoKG5vZGUpOwogICAgICBy
ZXR1cm4gcmVzdWx0czsKICAgIH0sCgogICAgYXR0cjogZnVuY3Rpb24obm9kZXMs
IHJvb3QsIGF0dHIsIHZhbHVlLCBvcGVyYXRvciwgY29tYmluYXRvcikgewogICAg
ICBpZiAoIW5vZGVzKSBub2RlcyA9IHJvb3QuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
IioiKTsKICAgICAgaWYgKG5vZGVzICYmIGNvbWJpbmF0b3IpIG5vZGVzID0gdGhp
c1tjb21iaW5hdG9yXShub2Rlcyk7CiAgICAgIHZhciBoYW5kbGVyID0gU2VsZWN0
b3Iub3BlcmF0b3JzW29wZXJhdG9yXSwgcmVzdWx0cyA9IFtdOwogICAgICBmb3Ig
KHZhciBpID0gMCwgbm9kZTsgbm9kZSA9IG5vZGVzW2ldOyBpKyspIHsKICAgICAg
ICB2YXIgbm9kZVZhbHVlID0gRWxlbWVudC5yZWFkQXR0cmlidXRlKG5vZGUsIGF0
dHIpOwogICAgICAgIGlmIChub2RlVmFsdWUgPT09IG51bGwpIGNvbnRpbnVlOwog
ICAgICAgIGlmIChoYW5kbGVyKG5vZGVWYWx1ZSwgdmFsdWUpKSByZXN1bHRzLnB1
c2gobm9kZSk7CiAgICAgIH0KICAgICAgcmV0dXJuIHJlc3VsdHM7CiAgICB9LAoK
ICAgIHBzZXVkbzogZnVuY3Rpb24obm9kZXMsIG5hbWUsIHZhbHVlLCByb290LCBj
b21iaW5hdG9yKSB7CiAgICAgIGlmIChub2RlcyAmJiBjb21iaW5hdG9yKSBub2Rl
cyA9IHRoaXNbY29tYmluYXRvcl0obm9kZXMpOwogICAgICBpZiAoIW5vZGVzKSBu
b2RlcyA9IHJvb3QuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKTsKICAgICAgcmV0
dXJuIFNlbGVjdG9yLnBzZXVkb3NbbmFtZV0obm9kZXMsIHZhbHVlLCByb290KTsK
ICAgIH0KICB9LAoKICBwc2V1ZG9zOiB7CiAgICAnZmlyc3QtY2hpbGQnOiBmdW5j
dGlvbihub2RlcywgdmFsdWUsIHJvb3QpIHsKICAgICAgZm9yICh2YXIgaSA9IDAs
IHJlc3VsdHMgPSBbXSwgbm9kZTsgbm9kZSA9IG5vZGVzW2ldOyBpKyspIHsKICAg
ICAgICBpZiAoU2VsZWN0b3IuaGFuZGxlcnMucHJldmlvdXNFbGVtZW50U2libGlu
Zyhub2RlKSkgY29udGludWU7CiAgICAgICAgICByZXN1bHRzLnB1c2gobm9kZSk7
CiAgICAgIH0KICAgICAgcmV0dXJuIHJlc3VsdHM7CiAgICB9LAogICAgJ2xhc3Qt
Y2hpbGQnOiBmdW5jdGlvbihub2RlcywgdmFsdWUsIHJvb3QpIHsKICAgICAgZm9y
ICh2YXIgaSA9IDAsIHJlc3VsdHMgPSBbXSwgbm9kZTsgbm9kZSA9IG5vZGVzW2ld
OyBpKyspIHsKICAgICAgICBpZiAoU2VsZWN0b3IuaGFuZGxlcnMubmV4dEVsZW1l
bnRTaWJsaW5nKG5vZGUpKSBjb250aW51ZTsKICAgICAgICAgIHJlc3VsdHMucHVz
aChub2RlKTsKICAgICAgfQogICAgICByZXR1cm4gcmVzdWx0czsKICAgIH0sCiAg
ICAnb25seS1jaGlsZCc6IGZ1bmN0aW9uKG5vZGVzLCB2YWx1ZSwgcm9vdCkgewog
ICAgICB2YXIgaCA9IFNlbGVjdG9yLmhhbmRsZXJzOwogICAgICBmb3IgKHZhciBp
ID0gMCwgcmVzdWx0cyA9IFtdLCBub2RlOyBub2RlID0gbm9kZXNbaV07IGkrKykK
ICAgICAgICBpZiAoIWgucHJldmlvdXNFbGVtZW50U2libGluZyhub2RlKSAmJiAh
aC5uZXh0RWxlbWVudFNpYmxpbmcobm9kZSkpCiAgICAgICAgICByZXN1bHRzLnB1
c2gobm9kZSk7CiAgICAgIHJldHVybiByZXN1bHRzOwogICAgfSwKICAgICdudGgt
Y2hpbGQnOiAgICAgICAgZnVuY3Rpb24obm9kZXMsIGZvcm11bGEsIHJvb3QpIHsK
ICAgICAgcmV0dXJuIFNlbGVjdG9yLnBzZXVkb3MubnRoKG5vZGVzLCBmb3JtdWxh
LCByb290KTsKICAgIH0sCiAgICAnbnRoLWxhc3QtY2hpbGQnOiAgIGZ1bmN0aW9u
KG5vZGVzLCBmb3JtdWxhLCByb290KSB7CiAgICAgIHJldHVybiBTZWxlY3Rvci5w
c2V1ZG9zLm50aChub2RlcywgZm9ybXVsYSwgcm9vdCwgdHJ1ZSk7CiAgICB9LAog
ICAgJ250aC1vZi10eXBlJzogICAgICBmdW5jdGlvbihub2RlcywgZm9ybXVsYSwg
cm9vdCkgewogICAgICByZXR1cm4gU2VsZWN0b3IucHNldWRvcy5udGgobm9kZXMs
IGZvcm11bGEsIHJvb3QsIGZhbHNlLCB0cnVlKTsKICAgIH0sCiAgICAnbnRoLWxh
c3Qtb2YtdHlwZSc6IGZ1bmN0aW9uKG5vZGVzLCBmb3JtdWxhLCByb290KSB7CiAg
ICAgIHJldHVybiBTZWxlY3Rvci5wc2V1ZG9zLm50aChub2RlcywgZm9ybXVsYSwg
cm9vdCwgdHJ1ZSwgdHJ1ZSk7CiAgICB9LAogICAgJ2ZpcnN0LW9mLXR5cGUnOiAg
ICBmdW5jdGlvbihub2RlcywgZm9ybXVsYSwgcm9vdCkgewogICAgICByZXR1cm4g
U2VsZWN0b3IucHNldWRvcy5udGgobm9kZXMsICIxIiwgcm9vdCwgZmFsc2UsIHRy
dWUpOwogICAgfSwKICAgICdsYXN0LW9mLXR5cGUnOiAgICAgZnVuY3Rpb24obm9k
ZXMsIGZvcm11bGEsIHJvb3QpIHsKICAgICAgcmV0dXJuIFNlbGVjdG9yLnBzZXVk
b3MubnRoKG5vZGVzLCAiMSIsIHJvb3QsIHRydWUsIHRydWUpOwogICAgfSwKICAg
ICdvbmx5LW9mLXR5cGUnOiAgICAgZnVuY3Rpb24obm9kZXMsIGZvcm11bGEsIHJv
b3QpIHsKICAgICAgdmFyIHAgPSBTZWxlY3Rvci5wc2V1ZG9zOwogICAgICByZXR1
cm4gcFsnbGFzdC1vZi10eXBlJ10ocFsnZmlyc3Qtb2YtdHlwZSddKG5vZGVzLCBm
b3JtdWxhLCByb290KSwgZm9ybXVsYSwgcm9vdCk7CiAgICB9LAoKICAgIC8vIGhh
bmRsZXMgdGhlIGFuK2IgbG9naWMKICAgIGdldEluZGljZXM6IGZ1bmN0aW9uKGEs
IGIsIHRvdGFsKSB7CiAgICAgIGlmIChhID09IDApIHJldHVybiBiID4gMCA/IFti
XSA6IFtdOwogICAgICByZXR1cm4gJFIoMSwgdG90YWwpLmluamVjdChbXSwgZnVu
Y3Rpb24obWVtbywgaSkgewogICAgICAgIGlmICgwID09IChpIC0gYikgJSBhICYm
IChpIC0gYikgLyBhID49IDApIG1lbW8ucHVzaChpKTsKICAgICAgICByZXR1cm4g
bWVtbzsKICAgICAgfSk7CiAgICB9LAoKICAgIC8vIGhhbmRsZXMgbnRoKC1sYXN0
KS1jaGlsZCwgbnRoKC1sYXN0KS1vZi10eXBlLCBhbmQgKGZpcnN0fGxhc3QpLW9m
LXR5cGUKICAgIG50aDogZnVuY3Rpb24obm9kZXMsIGZvcm11bGEsIHJvb3QsIHJl
dmVyc2UsIG9mVHlwZSkgewogICAgICBpZiAobm9kZXMubGVuZ3RoID09IDApIHJl
dHVybiBbXTsKICAgICAgaWYgKGZvcm11bGEgPT0gJ2V2ZW4nKSBmb3JtdWxhID0g
JzJuKzAnOwogICAgICBpZiAoZm9ybXVsYSA9PSAnb2RkJykgIGZvcm11bGEgPSAn
Mm4rMSc7CiAgICAgIHZhciBoID0gU2VsZWN0b3IuaGFuZGxlcnMsIHJlc3VsdHMg
PSBbXSwgaW5kZXhlZCA9IFtdLCBtOwogICAgICBoLm1hcmsobm9kZXMpOwogICAg
ICBmb3IgKHZhciBpID0gMCwgbm9kZTsgbm9kZSA9IG5vZGVzW2ldOyBpKyspIHsK
ICAgICAgICBpZiAoIW5vZGUucGFyZW50Tm9kZS5fY291bnRlZEJ5UHJvdG90eXBl
KSB7CiAgICAgICAgICBoLmluZGV4KG5vZGUucGFyZW50Tm9kZSwgcmV2ZXJzZSwg
b2ZUeXBlKTsKICAgICAgICAgIGluZGV4ZWQucHVzaChub2RlLnBhcmVudE5vZGUp
OwogICAgICAgIH0KICAgICAgfQogICAgICBpZiAoZm9ybXVsYS5tYXRjaCgvXlxk
KyQvKSkgeyAvLyBqdXN0IGEgbnVtYmVyCiAgICAgICAgZm9ybXVsYSA9IE51bWJl
cihmb3JtdWxhKTsKICAgICAgICBmb3IgKHZhciBpID0gMCwgbm9kZTsgbm9kZSA9
IG5vZGVzW2ldOyBpKyspCiAgICAgICAgICBpZiAobm9kZS5ub2RlSW5kZXggPT0g
Zm9ybXVsYSkgcmVzdWx0cy5wdXNoKG5vZGUpOwogICAgICB9IGVsc2UgaWYgKG0g
PSBmb3JtdWxhLm1hdGNoKC9eKC0/XGQqKT9uKChbKy1dKShcZCspKT8vKSkgeyAv
LyBhbitiCiAgICAgICAgaWYgKG1bMV0gPT0gIi0iKSBtWzFdID0gLTE7CiAgICAg
ICAgdmFyIGEgPSBtWzFdID8gTnVtYmVyKG1bMV0pIDogMTsKICAgICAgICB2YXIg
YiA9IG1bMl0gPyBOdW1iZXIobVsyXSkgOiAwOwogICAgICAgIHZhciBpbmRpY2Vz
ID0gU2VsZWN0b3IucHNldWRvcy5nZXRJbmRpY2VzKGEsIGIsIG5vZGVzLmxlbmd0
aCk7CiAgICAgICAgZm9yICh2YXIgaSA9IDAsIG5vZGUsIGwgPSBpbmRpY2VzLmxl
bmd0aDsgbm9kZSA9IG5vZGVzW2ldOyBpKyspIHsKICAgICAgICAgIGZvciAodmFy
IGogPSAwOyBqIDwgbDsgaisrKQogICAgICAgICAgICBpZiAobm9kZS5ub2RlSW5k
ZXggPT0gaW5kaWNlc1tqXSkgcmVzdWx0cy5wdXNoKG5vZGUpOwogICAgICAgIH0K
ICAgICAgfQogICAgICBoLnVubWFyayhub2Rlcyk7CiAgICAgIGgudW5tYXJrKGlu
ZGV4ZWQpOwogICAgICByZXR1cm4gcmVzdWx0czsKICAgIH0sCgogICAgJ2VtcHR5
JzogZnVuY3Rpb24obm9kZXMsIHZhbHVlLCByb290KSB7CiAgICAgIGZvciAodmFy
IGkgPSAwLCByZXN1bHRzID0gW10sIG5vZGU7IG5vZGUgPSBub2Rlc1tpXTsgaSsr
KSB7CiAgICAgICAgLy8gSUUgdHJlYXRzIGNvbW1lbnRzIGFzIGVsZW1lbnQgbm9k
ZXMKICAgICAgICBpZiAobm9kZS50YWdOYW1lID09ICchJyB8fCBub2RlLmZpcnN0
Q2hpbGQpIGNvbnRpbnVlOwogICAgICAgIHJlc3VsdHMucHVzaChub2RlKTsKICAg
ICAgfQogICAgICByZXR1cm4gcmVzdWx0czsKICAgIH0sCgogICAgJ25vdCc6IGZ1
bmN0aW9uKG5vZGVzLCBzZWxlY3Rvciwgcm9vdCkgewogICAgICB2YXIgaCA9IFNl
bGVjdG9yLmhhbmRsZXJzLCBzZWxlY3RvclR5cGUsIG07CiAgICAgIHZhciBleGNs
dXNpb25zID0gbmV3IFNlbGVjdG9yKHNlbGVjdG9yKS5maW5kRWxlbWVudHMocm9v
dCk7CiAgICAgIGgubWFyayhleGNsdXNpb25zKTsKICAgICAgZm9yICh2YXIgaSA9
IDAsIHJlc3VsdHMgPSBbXSwgbm9kZTsgbm9kZSA9IG5vZGVzW2ldOyBpKyspCiAg
ICAgICAgaWYgKCFub2RlLl9jb3VudGVkQnlQcm90b3R5cGUpIHJlc3VsdHMucHVz
aChub2RlKTsKICAgICAgaC51bm1hcmsoZXhjbHVzaW9ucyk7CiAgICAgIHJldHVy
biByZXN1bHRzOwogICAgfSwKCiAgICAnZW5hYmxlZCc6IGZ1bmN0aW9uKG5vZGVz
LCB2YWx1ZSwgcm9vdCkgewogICAgICBmb3IgKHZhciBpID0gMCwgcmVzdWx0cyA9
IFtdLCBub2RlOyBub2RlID0gbm9kZXNbaV07IGkrKykKICAgICAgICBpZiAoIW5v
ZGUuZGlzYWJsZWQgJiYgKCFub2RlLnR5cGUgfHwgbm9kZS50eXBlICE9PSAnaGlk
ZGVuJykpCiAgICAgICAgICByZXN1bHRzLnB1c2gobm9kZSk7CiAgICAgIHJldHVy
biByZXN1bHRzOwogICAgfSwKCiAgICAnZGlzYWJsZWQnOiBmdW5jdGlvbihub2Rl
cywgdmFsdWUsIHJvb3QpIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIHJlc3VsdHMg
PSBbXSwgbm9kZTsgbm9kZSA9IG5vZGVzW2ldOyBpKyspCiAgICAgICAgaWYgKG5v
ZGUuZGlzYWJsZWQpIHJlc3VsdHMucHVzaChub2RlKTsKICAgICAgcmV0dXJuIHJl
c3VsdHM7CiAgICB9LAoKICAgICdjaGVja2VkJzogZnVuY3Rpb24obm9kZXMsIHZh
bHVlLCByb290KSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCByZXN1bHRzID0gW10s
IG5vZGU7IG5vZGUgPSBub2Rlc1tpXTsgaSsrKQogICAgICAgIGlmIChub2RlLmNo
ZWNrZWQpIHJlc3VsdHMucHVzaChub2RlKTsKICAgICAgcmV0dXJuIHJlc3VsdHM7
CiAgICB9CiAgfSwKCiAgb3BlcmF0b3JzOiB7CiAgICAnPSc6ICBmdW5jdGlvbihu
diwgdikgeyByZXR1cm4gbnYgPT0gdjsgfSwKICAgICchPSc6IGZ1bmN0aW9uKG52
LCB2KSB7IHJldHVybiBudiAhPSB2OyB9LAogICAgJ149JzogZnVuY3Rpb24obnYs
IHYpIHsgcmV0dXJuIG52ID09IHYgfHwgbnYgJiYgbnYuc3RhcnRzV2l0aCh2KTsg
fSwKICAgICckPSc6IGZ1bmN0aW9uKG52LCB2KSB7IHJldHVybiBudiA9PSB2IHx8
IG52ICYmIG52LmVuZHNXaXRoKHYpOyB9LAogICAgJyo9JzogZnVuY3Rpb24obnYs
IHYpIHsgcmV0dXJuIG52ID09IHYgfHwgbnYgJiYgbnYuaW5jbHVkZSh2KTsgfSwK
ICAgICckPSc6IGZ1bmN0aW9uKG52LCB2KSB7IHJldHVybiBudi5lbmRzV2l0aCh2
KTsgfSwKICAgICcqPSc6IGZ1bmN0aW9uKG52LCB2KSB7IHJldHVybiBudi5pbmNs
dWRlKHYpOyB9LAogICAgJ349JzogZnVuY3Rpb24obnYsIHYpIHsgcmV0dXJuICgn
ICcgKyBudiArICcgJykuaW5jbHVkZSgnICcgKyB2ICsgJyAnKTsgfSwKICAgICd8
PSc6IGZ1bmN0aW9uKG52LCB2KSB7IHJldHVybiAoJy0nICsgKG52IHx8ICIiKS50
b1VwcGVyQ2FzZSgpICsKICAgICAnLScpLmluY2x1ZGUoJy0nICsgKHYgfHwgIiIp
LnRvVXBwZXJDYXNlKCkgKyAnLScpOyB9CiAgfSwKCiAgc3BsaXQ6IGZ1bmN0aW9u
KGV4cHJlc3Npb24pIHsKICAgIHZhciBleHByZXNzaW9ucyA9IFtdOwogICAgZXhw
cmVzc2lvbi5zY2FuKC8oKFtcdyM6Ln4+KygpXHMtXSt8XCp8XFsuKj9cXSkrKVxz
KigsfCQpLywgZnVuY3Rpb24obSkgewogICAgICBleHByZXNzaW9ucy5wdXNoKG1b
MV0uc3RyaXAoKSk7CiAgICB9KTsKICAgIHJldHVybiBleHByZXNzaW9uczsKICB9
LAoKICBtYXRjaEVsZW1lbnRzOiBmdW5jdGlvbihlbGVtZW50cywgZXhwcmVzc2lv
bikgewogICAgdmFyIG1hdGNoZXMgPSAkJChleHByZXNzaW9uKSwgaCA9IFNlbGVj
dG9yLmhhbmRsZXJzOwogICAgaC5tYXJrKG1hdGNoZXMpOwogICAgZm9yICh2YXIg
aSA9IDAsIHJlc3VsdHMgPSBbXSwgZWxlbWVudDsgZWxlbWVudCA9IGVsZW1lbnRz
W2ldOyBpKyspCiAgICAgIGlmIChlbGVtZW50Ll9jb3VudGVkQnlQcm90b3R5cGUp
IHJlc3VsdHMucHVzaChlbGVtZW50KTsKICAgIGgudW5tYXJrKG1hdGNoZXMpOwog
ICAgcmV0dXJuIHJlc3VsdHM7CiAgfSwKCiAgZmluZEVsZW1lbnQ6IGZ1bmN0aW9u
KGVsZW1lbnRzLCBleHByZXNzaW9uLCBpbmRleCkgewogICAgaWYgKE9iamVjdC5p
c051bWJlcihleHByZXNzaW9uKSkgewogICAgICBpbmRleCA9IGV4cHJlc3Npb247
IGV4cHJlc3Npb24gPSBmYWxzZTsKICAgIH0KICAgIHJldHVybiBTZWxlY3Rvci5t
YXRjaEVsZW1lbnRzKGVsZW1lbnRzLCBleHByZXNzaW9uIHx8ICcqJylbaW5kZXgg
fHwgMF07CiAgfSwKCiAgZmluZENoaWxkRWxlbWVudHM6IGZ1bmN0aW9uKGVsZW1l
bnQsIGV4cHJlc3Npb25zKSB7CiAgICBleHByZXNzaW9ucyA9IFNlbGVjdG9yLnNw
bGl0KGV4cHJlc3Npb25zLmpvaW4oJywnKSk7CiAgICB2YXIgcmVzdWx0cyA9IFtd
LCBoID0gU2VsZWN0b3IuaGFuZGxlcnM7CiAgICBmb3IgKHZhciBpID0gMCwgbCA9
IGV4cHJlc3Npb25zLmxlbmd0aCwgc2VsZWN0b3I7IGkgPCBsOyBpKyspIHsKICAg
ICAgc2VsZWN0b3IgPSBuZXcgU2VsZWN0b3IoZXhwcmVzc2lvbnNbaV0uc3RyaXAo
KSk7CiAgICAgIGguY29uY2F0KHJlc3VsdHMsIHNlbGVjdG9yLmZpbmRFbGVtZW50
cyhlbGVtZW50KSk7CiAgICB9CiAgICByZXR1cm4gKGwgPiAxKSA/IGgudW5pcXVl
KHJlc3VsdHMpIDogcmVzdWx0czsKICB9Cn0pOwoKaWYgKFByb3RvdHlwZS5Ccm93
c2VyLklFKSB7CiAgT2JqZWN0LmV4dGVuZChTZWxlY3Rvci5oYW5kbGVycywgewog
ICAgLy8gSUUgcmV0dXJucyBjb21tZW50IG5vZGVzIG9uIGdldEVsZW1lbnRzQnlU
YWdOYW1lKCIqIikuCiAgICAvLyBGaWx0ZXIgdGhlbSBvdXQuCiAgICBjb25jYXQ6
IGZ1bmN0aW9uKGEsIGIpIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIG5vZGU7IG5v
ZGUgPSBiW2ldOyBpKyspCiAgICAgICAgaWYgKG5vZGUudGFnTmFtZSAhPT0gIiEi
KSBhLnB1c2gobm9kZSk7CiAgICAgIHJldHVybiBhOwogICAgfSwKCiAgICAvLyBJ
RSBpbXByb3Blcmx5IHNlcmlhbGl6ZXMgX2NvdW50ZWRCeVByb3RvdHlwZSBpbiAo
aW5uZXJ8b3V0ZXIpSFRNTC4KICAgIHVubWFyazogZnVuY3Rpb24obm9kZXMpIHsK
ICAgICAgZm9yICh2YXIgaSA9IDAsIG5vZGU7IG5vZGUgPSBub2Rlc1tpXTsgaSsr
KQogICAgICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKCdfY291bnRlZEJ5UHJvdG90
eXBlJyk7CiAgICAgIHJldHVybiBub2RlczsKICAgIH0KICB9KTsKfQoKZnVuY3Rp
b24gJCQoKSB7CiAgcmV0dXJuIFNlbGVjdG9yLmZpbmRDaGlsZEVsZW1lbnRzKGRv
Y3VtZW50LCAkQShhcmd1bWVudHMpKTsKfQp2YXIgRm9ybSA9IHsKICByZXNldDog
ZnVuY3Rpb24oZm9ybSkgewogICAgJChmb3JtKS5yZXNldCgpOwogICAgcmV0dXJu
IGZvcm07CiAgfSwKCiAgc2VyaWFsaXplRWxlbWVudHM6IGZ1bmN0aW9uKGVsZW1l
bnRzLCBvcHRpb25zKSB7CiAgICBpZiAodHlwZW9mIG9wdGlvbnMgIT0gJ29iamVj
dCcpIG9wdGlvbnMgPSB7IGhhc2g6ICEhb3B0aW9ucyB9OwogICAgZWxzZSBpZiAo
T2JqZWN0LmlzVW5kZWZpbmVkKG9wdGlvbnMuaGFzaCkpIG9wdGlvbnMuaGFzaCA9
IHRydWU7CiAgICB2YXIga2V5LCB2YWx1ZSwgc3VibWl0dGVkID0gZmFsc2UsIHN1
Ym1pdCA9IG9wdGlvbnMuc3VibWl0OwoKICAgIHZhciBkYXRhID0gZWxlbWVudHMu
aW5qZWN0KHsgfSwgZnVuY3Rpb24ocmVzdWx0LCBlbGVtZW50KSB7CiAgICAgIGlm
ICghZWxlbWVudC5kaXNhYmxlZCAmJiBlbGVtZW50Lm5hbWUpIHsKICAgICAgICBr
ZXkgPSBlbGVtZW50Lm5hbWU7IHZhbHVlID0gJChlbGVtZW50KS5nZXRWYWx1ZSgp
OwogICAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmIGVsZW1lbnQudHlwZSAhPSAn
ZmlsZScgJiYgKGVsZW1lbnQudHlwZSAhPSAnc3VibWl0JyB8fCAoIXN1Ym1pdHRl
ZCAmJgogICAgICAgICAgICBzdWJtaXQgIT09IGZhbHNlICYmICghc3VibWl0IHx8
IGtleSA9PSBzdWJtaXQpICYmIChzdWJtaXR0ZWQgPSB0cnVlKSkpKSB7CiAgICAg
ICAgICBpZiAoa2V5IGluIHJlc3VsdCkgewogICAgICAgICAgICAvLyBhIGtleSBp
cyBhbHJlYWR5IHByZXNlbnQ7IGNvbnN0cnVjdCBhbiBhcnJheSBvZiB2YWx1ZXMK
ICAgICAgICAgICAgaWYgKCFPYmplY3QuaXNBcnJheShyZXN1bHRba2V5XSkpIHJl
c3VsdFtrZXldID0gW3Jlc3VsdFtrZXldXTsKICAgICAgICAgICAgcmVzdWx0W2tl
eV0ucHVzaCh2YWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIHJlc3Vs
dFtrZXldID0gdmFsdWU7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBy
ZXN1bHQ7CiAgICB9KTsKCiAgICByZXR1cm4gb3B0aW9ucy5oYXNoID8gZGF0YSA6
IE9iamVjdC50b1F1ZXJ5U3RyaW5nKGRhdGEpOwogIH0KfTsKCkZvcm0uTWV0aG9k
cyA9IHsKICBzZXJpYWxpemU6IGZ1bmN0aW9uKGZvcm0sIG9wdGlvbnMpIHsKICAg
IHJldHVybiBGb3JtLnNlcmlhbGl6ZUVsZW1lbnRzKEZvcm0uZ2V0RWxlbWVudHMo
Zm9ybSksIG9wdGlvbnMpOwogIH0sCgogIGdldEVsZW1lbnRzOiBmdW5jdGlvbihm
b3JtKSB7CiAgICByZXR1cm4gJEEoJChmb3JtKS5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgnKicpKS5pbmplY3QoW10sCiAgICAgIGZ1bmN0aW9uKGVsZW1lbnRzLCBjaGls
ZCkgewogICAgICAgIGlmIChGb3JtLkVsZW1lbnQuU2VyaWFsaXplcnNbY2hpbGQu
dGFnTmFtZS50b0xvd2VyQ2FzZSgpXSkKICAgICAgICAgIGVsZW1lbnRzLnB1c2go
RWxlbWVudC5leHRlbmQoY2hpbGQpKTsKICAgICAgICByZXR1cm4gZWxlbWVudHM7
CiAgICAgIH0KICAgICk7CiAgfSwKCiAgZ2V0SW5wdXRzOiBmdW5jdGlvbihmb3Jt
LCB0eXBlTmFtZSwgbmFtZSkgewogICAgZm9ybSA9ICQoZm9ybSk7CiAgICB2YXIg
aW5wdXRzID0gZm9ybS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKTsKCiAg
ICBpZiAoIXR5cGVOYW1lICYmICFuYW1lKSByZXR1cm4gJEEoaW5wdXRzKS5tYXAo
RWxlbWVudC5leHRlbmQpOwoKICAgIGZvciAodmFyIGkgPSAwLCBtYXRjaGluZ0lu
cHV0cyA9IFtdLCBsZW5ndGggPSBpbnB1dHMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBp
KyspIHsKICAgICAgdmFyIGlucHV0ID0gaW5wdXRzW2ldOwogICAgICBpZiAoKHR5
cGVOYW1lICYmIGlucHV0LnR5cGUgIT0gdHlwZU5hbWUpIHx8IChuYW1lICYmIGlu
cHV0Lm5hbWUgIT0gbmFtZSkpCiAgICAgICAgY29udGludWU7CiAgICAgIG1hdGNo
aW5nSW5wdXRzLnB1c2goRWxlbWVudC5leHRlbmQoaW5wdXQpKTsKICAgIH0KCiAg
ICByZXR1cm4gbWF0Y2hpbmdJbnB1dHM7CiAgfSwKCiAgZGlzYWJsZTogZnVuY3Rp
b24oZm9ybSkgewogICAgZm9ybSA9ICQoZm9ybSk7CiAgICBGb3JtLmdldEVsZW1l
bnRzKGZvcm0pLmludm9rZSgnZGlzYWJsZScpOwogICAgcmV0dXJuIGZvcm07CiAg
fSwKCiAgZW5hYmxlOiBmdW5jdGlvbihmb3JtKSB7CiAgICBmb3JtID0gJChmb3Jt
KTsKICAgIEZvcm0uZ2V0RWxlbWVudHMoZm9ybSkuaW52b2tlKCdlbmFibGUnKTsK
ICAgIHJldHVybiBmb3JtOwogIH0sCgogIGZpbmRGaXJzdEVsZW1lbnQ6IGZ1bmN0
aW9uKGZvcm0pIHsKICAgIHZhciBlbGVtZW50cyA9ICQoZm9ybSkuZ2V0RWxlbWVu
dHMoKS5maW5kQWxsKGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgICAgcmV0dXJuICdo
aWRkZW4nICE9IGVsZW1lbnQudHlwZSAmJiAhZWxlbWVudC5kaXNhYmxlZDsKICAg
IH0pOwogICAgdmFyIGZpcnN0QnlJbmRleCA9IGVsZW1lbnRzLmZpbmRBbGwoZnVu
Y3Rpb24oZWxlbWVudCkgewogICAgICByZXR1cm4gZWxlbWVudC5oYXNBdHRyaWJ1
dGUoJ3RhYkluZGV4JykgJiYgZWxlbWVudC50YWJJbmRleCA+PSAwOwogICAgfSku
c29ydEJ5KGZ1bmN0aW9uKGVsZW1lbnQpIHsgcmV0dXJuIGVsZW1lbnQudGFiSW5k
ZXggfSkuZmlyc3QoKTsKCiAgICByZXR1cm4gZmlyc3RCeUluZGV4ID8gZmlyc3RC
eUluZGV4IDogZWxlbWVudHMuZmluZChmdW5jdGlvbihlbGVtZW50KSB7CiAgICAg
IHJldHVybiBbJ2lucHV0JywgJ3NlbGVjdCcsICd0ZXh0YXJlYSddLmluY2x1ZGUo
ZWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCkpOwogICAgfSk7CiAgfSwKCiAg
Zm9jdXNGaXJzdEVsZW1lbnQ6IGZ1bmN0aW9uKGZvcm0pIHsKICAgIGZvcm0gPSAk
KGZvcm0pOwogICAgZm9ybS5maW5kRmlyc3RFbGVtZW50KCkuYWN0aXZhdGUoKTsK
ICAgIHJldHVybiBmb3JtOwogIH0sCgogIHJlcXVlc3Q6IGZ1bmN0aW9uKGZvcm0s
IG9wdGlvbnMpIHsKICAgIGZvcm0gPSAkKGZvcm0pLCBvcHRpb25zID0gT2JqZWN0
LmNsb25lKG9wdGlvbnMgfHwgeyB9KTsKCiAgICB2YXIgcGFyYW1zID0gb3B0aW9u
cy5wYXJhbWV0ZXJzLCBhY3Rpb24gPSBmb3JtLnJlYWRBdHRyaWJ1dGUoJ2FjdGlv
bicpIHx8ICcnOwogICAgaWYgKGFjdGlvbi5ibGFuaygpKSBhY3Rpb24gPSB3aW5k
b3cubG9jYXRpb24uaHJlZjsKICAgIG9wdGlvbnMucGFyYW1ldGVycyA9IGZvcm0u
c2VyaWFsaXplKHRydWUpOwoKICAgIGlmIChwYXJhbXMpIHsKICAgICAgaWYgKE9i
amVjdC5pc1N0cmluZyhwYXJhbXMpKSBwYXJhbXMgPSBwYXJhbXMudG9RdWVyeVBh
cmFtcygpOwogICAgICBPYmplY3QuZXh0ZW5kKG9wdGlvbnMucGFyYW1ldGVycywg
cGFyYW1zKTsKICAgIH0KCiAgICBpZiAoZm9ybS5oYXNBdHRyaWJ1dGUoJ21ldGhv
ZCcpICYmICFvcHRpb25zLm1ldGhvZCkKICAgICAgb3B0aW9ucy5tZXRob2QgPSBm
b3JtLm1ldGhvZDsKCiAgICByZXR1cm4gbmV3IEFqYXguUmVxdWVzdChhY3Rpb24s
IG9wdGlvbnMpOwogIH0KfTsKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0q
LwoKRm9ybS5FbGVtZW50ID0gewogIGZvY3VzOiBmdW5jdGlvbihlbGVtZW50KSB7
CiAgICAkKGVsZW1lbnQpLmZvY3VzKCk7CiAgICByZXR1cm4gZWxlbWVudDsKICB9
LAoKICBzZWxlY3Q6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgICQoZWxlbWVudCku
c2VsZWN0KCk7CiAgICByZXR1cm4gZWxlbWVudDsKICB9Cn07CgpGb3JtLkVsZW1l
bnQuTWV0aG9kcyA9IHsKICBzZXJpYWxpemU6IGZ1bmN0aW9uKGVsZW1lbnQpIHsK
ICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgaWYgKCFlbGVtZW50LmRpc2Fi
bGVkICYmIGVsZW1lbnQubmFtZSkgewogICAgICB2YXIgdmFsdWUgPSBlbGVtZW50
LmdldFZhbHVlKCk7CiAgICAgIGlmICh2YWx1ZSAhPSB1bmRlZmluZWQpIHsKICAg
ICAgICB2YXIgcGFpciA9IHsgfTsKICAgICAgICBwYWlyW2VsZW1lbnQubmFtZV0g
PSB2YWx1ZTsKICAgICAgICByZXR1cm4gT2JqZWN0LnRvUXVlcnlTdHJpbmcocGFp
cik7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiAnJzsKICB9LAoKICBnZXRWYWx1
ZTogZnVuY3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7
CiAgICB2YXIgbWV0aG9kID0gZWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCk7
CiAgICByZXR1cm4gRm9ybS5FbGVtZW50LlNlcmlhbGl6ZXJzW21ldGhvZF0oZWxl
bWVudCk7CiAgfSwKCiAgc2V0VmFsdWU6IGZ1bmN0aW9uKGVsZW1lbnQsIHZhbHVl
KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIHZhciBtZXRob2QgPSBl
bGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKTsKICAgIEZvcm0uRWxlbWVudC5T
ZXJpYWxpemVyc1ttZXRob2RdKGVsZW1lbnQsIHZhbHVlKTsKICAgIHJldHVybiBl
bGVtZW50OwogIH0sCgogIGNsZWFyOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICAk
KGVsZW1lbnQpLnZhbHVlID0gJyc7CiAgICByZXR1cm4gZWxlbWVudDsKICB9LAoK
ICBwcmVzZW50OiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICByZXR1cm4gJChlbGVt
ZW50KS52YWx1ZSAhPSAnJzsKICB9LAoKICBhY3RpdmF0ZTogZnVuY3Rpb24oZWxl
bWVudCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICB0cnkgewogICAg
ICBlbGVtZW50LmZvY3VzKCk7CiAgICAgIGlmIChlbGVtZW50LnNlbGVjdCAmJiAo
ZWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgIT0gJ2lucHV0JyB8fAogICAg
ICAgICAgIVsnYnV0dG9uJywgJ3Jlc2V0JywgJ3N1Ym1pdCddLmluY2x1ZGUoZWxl
bWVudC50eXBlKSkpCiAgICAgICAgZWxlbWVudC5zZWxlY3QoKTsKICAgIH0gY2F0
Y2ggKGUpIHsgfQogICAgcmV0dXJuIGVsZW1lbnQ7CiAgfSwKCiAgZGlzYWJsZTog
ZnVuY3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAg
ICBlbGVtZW50LmRpc2FibGVkID0gdHJ1ZTsKICAgIHJldHVybiBlbGVtZW50Owog
IH0sCgogIGVuYWJsZTogZnVuY3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9
ICQoZWxlbWVudCk7CiAgICBlbGVtZW50LmRpc2FibGVkID0gZmFsc2U7CiAgICBy
ZXR1cm4gZWxlbWVudDsKICB9Cn07CgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKi8KCnZhciBGaWVsZCA9IEZvcm0uRWxlbWVudDsKdmFyICRGID0gRm9ybS5F
bGVtZW50Lk1ldGhvZHMuZ2V0VmFsdWU7CgovKi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKi8KCkZvcm0uRWxlbWVudC5TZXJpYWxpemVycyA9IHsKICBpbnB1dDog
ZnVuY3Rpb24oZWxlbWVudCwgdmFsdWUpIHsKICAgIHN3aXRjaCAoZWxlbWVudC50
eXBlLnRvTG93ZXJDYXNlKCkpIHsKICAgICAgY2FzZSAnY2hlY2tib3gnOgogICAg
ICBjYXNlICdyYWRpbyc6CiAgICAgICAgcmV0dXJuIEZvcm0uRWxlbWVudC5TZXJp
YWxpemVycy5pbnB1dFNlbGVjdG9yKGVsZW1lbnQsIHZhbHVlKTsKICAgICAgZGVm
YXVsdDoKICAgICAgICByZXR1cm4gRm9ybS5FbGVtZW50LlNlcmlhbGl6ZXJzLnRl
eHRhcmVhKGVsZW1lbnQsIHZhbHVlKTsKICAgIH0KICB9LAoKICBpbnB1dFNlbGVj
dG9yOiBmdW5jdGlvbihlbGVtZW50LCB2YWx1ZSkgewogICAgaWYgKE9iamVjdC5p
c1VuZGVmaW5lZCh2YWx1ZSkpIHJldHVybiBlbGVtZW50LmNoZWNrZWQgPyBlbGVt
ZW50LnZhbHVlIDogbnVsbDsKICAgIGVsc2UgZWxlbWVudC5jaGVja2VkID0gISF2
YWx1ZTsKICB9LAoKICB0ZXh0YXJlYTogZnVuY3Rpb24oZWxlbWVudCwgdmFsdWUp
IHsKICAgIGlmIChPYmplY3QuaXNVbmRlZmluZWQodmFsdWUpKSByZXR1cm4gZWxl
bWVudC52YWx1ZTsKICAgIGVsc2UgZWxlbWVudC52YWx1ZSA9IHZhbHVlOwogIH0s
CgogIHNlbGVjdDogZnVuY3Rpb24oZWxlbWVudCwgdmFsdWUpIHsKICAgIGlmIChP
YmplY3QuaXNVbmRlZmluZWQodmFsdWUpKQogICAgICByZXR1cm4gdGhpc1tlbGVt
ZW50LnR5cGUgPT0gJ3NlbGVjdC1vbmUnID8KICAgICAgICAnc2VsZWN0T25lJyA6
ICdzZWxlY3RNYW55J10oZWxlbWVudCk7CiAgICBlbHNlIHsKICAgICAgdmFyIG9w
dCwgY3VycmVudFZhbHVlLCBzaW5nbGUgPSAhT2JqZWN0LmlzQXJyYXkodmFsdWUp
OwogICAgICBmb3IgKHZhciBpID0gMCwgbGVuZ3RoID0gZWxlbWVudC5sZW5ndGg7
IGkgPCBsZW5ndGg7IGkrKykgewogICAgICAgIG9wdCA9IGVsZW1lbnQub3B0aW9u
c1tpXTsKICAgICAgICBjdXJyZW50VmFsdWUgPSB0aGlzLm9wdGlvblZhbHVlKG9w
dCk7CiAgICAgICAgaWYgKHNpbmdsZSkgewogICAgICAgICAgaWYgKGN1cnJlbnRW
YWx1ZSA9PSB2YWx1ZSkgewogICAgICAgICAgICBvcHQuc2VsZWN0ZWQgPSB0cnVl
OwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgfQogICAg
ICAgIGVsc2Ugb3B0LnNlbGVjdGVkID0gdmFsdWUuaW5jbHVkZShjdXJyZW50VmFs
dWUpOwogICAgICB9CiAgICB9CiAgfSwKCiAgc2VsZWN0T25lOiBmdW5jdGlvbihl
bGVtZW50KSB7CiAgICB2YXIgaW5kZXggPSBlbGVtZW50LnNlbGVjdGVkSW5kZXg7
CiAgICByZXR1cm4gaW5kZXggPj0gMCA/IHRoaXMub3B0aW9uVmFsdWUoZWxlbWVu
dC5vcHRpb25zW2luZGV4XSkgOiBudWxsOwogIH0sCgogIHNlbGVjdE1hbnk6IGZ1
bmN0aW9uKGVsZW1lbnQpIHsKICAgIHZhciB2YWx1ZXMsIGxlbmd0aCA9IGVsZW1l
bnQubGVuZ3RoOwogICAgaWYgKCFsZW5ndGgpIHJldHVybiBudWxsOwoKICAgIGZv
ciAodmFyIGkgPSAwLCB2YWx1ZXMgPSBbXTsgaSA8IGxlbmd0aDsgaSsrKSB7CiAg
ICAgIHZhciBvcHQgPSBlbGVtZW50Lm9wdGlvbnNbaV07CiAgICAgIGlmIChvcHQu
c2VsZWN0ZWQpIHZhbHVlcy5wdXNoKHRoaXMub3B0aW9uVmFsdWUob3B0KSk7CiAg
ICB9CiAgICByZXR1cm4gdmFsdWVzOwogIH0sCgogIG9wdGlvblZhbHVlOiBmdW5j
dGlvbihvcHQpIHsKICAgIC8vIGV4dGVuZCBlbGVtZW50IGJlY2F1c2UgaGFzQXR0
cmlidXRlIG1heSBub3QgYmUgbmF0aXZlCiAgICByZXR1cm4gRWxlbWVudC5leHRl
bmQob3B0KS5oYXNBdHRyaWJ1dGUoJ3ZhbHVlJykgPyBvcHQudmFsdWUgOiBvcHQu
dGV4dDsKICB9Cn07CgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCkFi
c3RyYWN0LlRpbWVkT2JzZXJ2ZXIgPSBDbGFzcy5jcmVhdGUoUGVyaW9kaWNhbEV4
ZWN1dGVyLCB7CiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oJHN1cGVyLCBlbGVtZW50
LCBmcmVxdWVuY3ksIGNhbGxiYWNrKSB7CiAgICAkc3VwZXIoY2FsbGJhY2ssIGZy
ZXF1ZW5jeSk7CiAgICB0aGlzLmVsZW1lbnQgICA9ICQoZWxlbWVudCk7CiAgICB0
aGlzLmxhc3RWYWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKTsKICB9LAoKICBleGVjdXRl
OiBmdW5jdGlvbigpIHsKICAgIHZhciB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKTsK
ICAgIGlmIChPYmplY3QuaXNTdHJpbmcodGhpcy5sYXN0VmFsdWUpICYmIE9iamVj
dC5pc1N0cmluZyh2YWx1ZSkgPwogICAgICAgIHRoaXMubGFzdFZhbHVlICE9IHZh
bHVlIDogU3RyaW5nKHRoaXMubGFzdFZhbHVlKSAhPSBTdHJpbmcodmFsdWUpKSB7
CiAgICAgIHRoaXMuY2FsbGJhY2sodGhpcy5lbGVtZW50LCB2YWx1ZSk7CiAgICAg
IHRoaXMubGFzdFZhbHVlID0gdmFsdWU7CiAgICB9CiAgfQp9KTsKCkZvcm0uRWxl
bWVudC5PYnNlcnZlciA9IENsYXNzLmNyZWF0ZShBYnN0cmFjdC5UaW1lZE9ic2Vy
dmVyLCB7CiAgZ2V0VmFsdWU6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIEZvcm0u
RWxlbWVudC5nZXRWYWx1ZSh0aGlzLmVsZW1lbnQpOwogIH0KfSk7CgpGb3JtLk9i
c2VydmVyID0gQ2xhc3MuY3JlYXRlKEFic3RyYWN0LlRpbWVkT2JzZXJ2ZXIsIHsK
ICBnZXRWYWx1ZTogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gRm9ybS5zZXJpYWxp
emUodGhpcy5lbGVtZW50KTsKICB9Cn0pOwoKLyotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSovCgpBYnN0cmFjdC5FdmVudE9ic2VydmVyID0gQ2xhc3MuY3JlYXRl
KHsKICBpbml0aWFsaXplOiBmdW5jdGlvbihlbGVtZW50LCBjYWxsYmFjaykgewog
ICAgdGhpcy5lbGVtZW50ICA9ICQoZWxlbWVudCk7CiAgICB0aGlzLmNhbGxiYWNr
ID0gY2FsbGJhY2s7CgogICAgdGhpcy5sYXN0VmFsdWUgPSB0aGlzLmdldFZhbHVl
KCk7CiAgICBpZiAodGhpcy5lbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9
PSAnZm9ybScpCiAgICAgIHRoaXMucmVnaXN0ZXJGb3JtQ2FsbGJhY2tzKCk7CiAg
ICBlbHNlCiAgICAgIHRoaXMucmVnaXN0ZXJDYWxsYmFjayh0aGlzLmVsZW1lbnQp
OwogIH0sCgogIG9uRWxlbWVudEV2ZW50OiBmdW5jdGlvbigpIHsKICAgIHZhciB2
YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKTsKICAgIGlmICh0aGlzLmxhc3RWYWx1ZSAh
PSB2YWx1ZSkgewogICAgICB0aGlzLmNhbGxiYWNrKHRoaXMuZWxlbWVudCwgdmFs
dWUpOwogICAgICB0aGlzLmxhc3RWYWx1ZSA9IHZhbHVlOwogICAgfQogIH0sCgog
IHJlZ2lzdGVyRm9ybUNhbGxiYWNrczogZnVuY3Rpb24oKSB7CiAgICBGb3JtLmdl
dEVsZW1lbnRzKHRoaXMuZWxlbWVudCkuZWFjaCh0aGlzLnJlZ2lzdGVyQ2FsbGJh
Y2ssIHRoaXMpOwogIH0sCgogIHJlZ2lzdGVyQ2FsbGJhY2s6IGZ1bmN0aW9uKGVs
ZW1lbnQpIHsKICAgIGlmIChlbGVtZW50LnR5cGUpIHsKICAgICAgc3dpdGNoIChl
bGVtZW50LnR5cGUudG9Mb3dlckNhc2UoKSkgewogICAgICAgIGNhc2UgJ2NoZWNr
Ym94JzoKICAgICAgICBjYXNlICdyYWRpbyc6CiAgICAgICAgICBFdmVudC5vYnNl
cnZlKGVsZW1lbnQsICdjbGljaycsIHRoaXMub25FbGVtZW50RXZlbnQuYmluZCh0
aGlzKSk7CiAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAg
ICAgRXZlbnQub2JzZXJ2ZShlbGVtZW50LCAnY2hhbmdlJywgdGhpcy5vbkVsZW1l
bnRFdmVudC5iaW5kKHRoaXMpKTsKICAgICAgICAgIGJyZWFrOwogICAgICB9CiAg
ICB9CiAgfQp9KTsKCkZvcm0uRWxlbWVudC5FdmVudE9ic2VydmVyID0gQ2xhc3Mu
Y3JlYXRlKEFic3RyYWN0LkV2ZW50T2JzZXJ2ZXIsIHsKICBnZXRWYWx1ZTogZnVu
Y3Rpb24oKSB7CiAgICByZXR1cm4gRm9ybS5FbGVtZW50LmdldFZhbHVlKHRoaXMu
ZWxlbWVudCk7CiAgfQp9KTsKCkZvcm0uRXZlbnRPYnNlcnZlciA9IENsYXNzLmNy
ZWF0ZShBYnN0cmFjdC5FdmVudE9ic2VydmVyLCB7CiAgZ2V0VmFsdWU6IGZ1bmN0
aW9uKCkgewogICAgcmV0dXJuIEZvcm0uc2VyaWFsaXplKHRoaXMuZWxlbWVudCk7
CiAgfQp9KTsKaWYgKCF3aW5kb3cuRXZlbnQpIHZhciBFdmVudCA9IHsgfTsKCk9i
amVjdC5leHRlbmQoRXZlbnQsIHsKICBLRVlfQkFDS1NQQUNFOiA4LAogIEtFWV9U
QUI6ICAgICAgIDksCiAgS0VZX1JFVFVSTjogICAxMywKICBLRVlfRVNDOiAgICAg
IDI3LAogIEtFWV9MRUZUOiAgICAgMzcsCiAgS0VZX1VQOiAgICAgICAzOCwKICBL
RVlfUklHSFQ6ICAgIDM5LAogIEtFWV9ET1dOOiAgICAgNDAsCiAgS0VZX0RFTEVU
RTogICA0NiwKICBLRVlfSE9NRTogICAgIDM2LAogIEtFWV9FTkQ6ICAgICAgMzUs
CiAgS0VZX1BBR0VVUDogICAzMywKICBLRVlfUEFHRURPV046IDM0LAogIEtFWV9J
TlNFUlQ6ICAgNDUsCgogIGNhY2hlOiB7IH0sCgogIHJlbGF0ZWRUYXJnZXQ6IGZ1
bmN0aW9uKGV2ZW50KSB7CiAgICB2YXIgZWxlbWVudDsKICAgIHN3aXRjaChldmVu
dC50eXBlKSB7CiAgICAgIGNhc2UgJ21vdXNlb3Zlcic6IGVsZW1lbnQgPSBldmVu
dC5mcm9tRWxlbWVudDsgYnJlYWs7CiAgICAgIGNhc2UgJ21vdXNlb3V0JzogIGVs
ZW1lbnQgPSBldmVudC50b0VsZW1lbnQ7ICAgYnJlYWs7CiAgICAgIGRlZmF1bHQ6
IHJldHVybiBudWxsOwogICAgfQogICAgcmV0dXJuIEVsZW1lbnQuZXh0ZW5kKGVs
ZW1lbnQpOwogIH0KfSk7CgpFdmVudC5NZXRob2RzID0gKGZ1bmN0aW9uKCkgewog
IHZhciBpc0J1dHRvbjsKCiAgaWYgKFByb3RvdHlwZS5Ccm93c2VyLklFKSB7CiAg
ICB2YXIgYnV0dG9uTWFwID0geyAwOiAxLCAxOiA0LCAyOiAyIH07CiAgICBpc0J1
dHRvbiA9IGZ1bmN0aW9uKGV2ZW50LCBjb2RlKSB7CiAgICAgIHJldHVybiBldmVu
dC5idXR0b24gPT0gYnV0dG9uTWFwW2NvZGVdOwogICAgfTsKCiAgfSBlbHNlIGlm
IChQcm90b3R5cGUuQnJvd3Nlci5XZWJLaXQpIHsKICAgIGlzQnV0dG9uID0gZnVu
Y3Rpb24oZXZlbnQsIGNvZGUpIHsKICAgICAgc3dpdGNoIChjb2RlKSB7CiAgICAg
ICAgY2FzZSAwOiByZXR1cm4gZXZlbnQud2hpY2ggPT0gMSAmJiAhZXZlbnQubWV0
YUtleTsKICAgICAgICBjYXNlIDE6IHJldHVybiBldmVudC53aGljaCA9PSAxICYm
IGV2ZW50Lm1ldGFLZXk7CiAgICAgICAgZGVmYXVsdDogcmV0dXJuIGZhbHNlOwog
ICAgICB9CiAgICB9OwoKICB9IGVsc2UgewogICAgaXNCdXR0b24gPSBmdW5jdGlv
bihldmVudCwgY29kZSkgewogICAgICByZXR1cm4gZXZlbnQud2hpY2ggPyAoZXZl
bnQud2hpY2ggPT09IGNvZGUgKyAxKSA6IChldmVudC5idXR0b24gPT09IGNvZGUp
OwogICAgfTsKICB9CgogIHJldHVybiB7CiAgICBpc0xlZnRDbGljazogICBmdW5j
dGlvbihldmVudCkgeyByZXR1cm4gaXNCdXR0b24oZXZlbnQsIDApIH0sCiAgICBp
c01pZGRsZUNsaWNrOiBmdW5jdGlvbihldmVudCkgeyByZXR1cm4gaXNCdXR0b24o
ZXZlbnQsIDEpIH0sCiAgICBpc1JpZ2h0Q2xpY2s6ICBmdW5jdGlvbihldmVudCkg
eyByZXR1cm4gaXNCdXR0b24oZXZlbnQsIDIpIH0sCgogICAgZWxlbWVudDogZnVu
Y3Rpb24oZXZlbnQpIHsKICAgICAgZXZlbnQgPSBFdmVudC5leHRlbmQoZXZlbnQp
OwoKICAgICAgdmFyIG5vZGUgICAgICAgICAgPSBldmVudC50YXJnZXQsCiAgICAg
ICAgICB0eXBlICAgICAgICAgID0gZXZlbnQudHlwZSwKICAgICAgICAgIGN1cnJl
bnRUYXJnZXQgPSBldmVudC5jdXJyZW50VGFyZ2V0OwoKICAgICAgaWYgKGN1cnJl
bnRUYXJnZXQgJiYgY3VycmVudFRhcmdldC50YWdOYW1lKSB7CiAgICAgICAgLy8g
RmlyZWZveCBzY3Jld3MgdXAgdGhlICJjbGljayIgZXZlbnQgd2hlbiBtb3Zpbmcg
YmV0d2VlbiByYWRpbyBidXR0b25zCiAgICAgICAgLy8gdmlhIGFycm93IGtleXMu
IEl0IGFsc28gc2NyZXdzIHVwIHRoZSAibG9hZCIgYW5kICJlcnJvciIgZXZlbnRz
IG9uIGltYWdlcywKICAgICAgICAvLyByZXBvcnRpbmcgdGhlIGRvY3VtZW50IGFz
IHRoZSB0YXJnZXQgaW5zdGVhZCBvZiB0aGUgb3JpZ2luYWwgaW1hZ2UuCiAgICAg
ICAgaWYgKHR5cGUgPT09ICdsb2FkJyB8fCB0eXBlID09PSAnZXJyb3InIHx8CiAg
ICAgICAgICAodHlwZSA9PT0gJ2NsaWNrJyAmJiBjdXJyZW50VGFyZ2V0LnRhZ05h
bWUudG9Mb3dlckNhc2UoKSA9PT0gJ2lucHV0JwogICAgICAgICAgICAmJiBjdXJy
ZW50VGFyZ2V0LnR5cGUgPT09ICdyYWRpbycpKQogICAgICAgICAgICAgIG5vZGUg
PSBjdXJyZW50VGFyZ2V0OwogICAgICB9CiAgICAgIGlmIChub2RlLm5vZGVUeXBl
ID09IE5vZGUuVEVYVF9OT0RFKSBub2RlID0gbm9kZS5wYXJlbnROb2RlOwogICAg
ICByZXR1cm4gRWxlbWVudC5leHRlbmQobm9kZSk7CiAgICB9LAoKICAgIGZpbmRF
bGVtZW50OiBmdW5jdGlvbihldmVudCwgZXhwcmVzc2lvbikgewogICAgICB2YXIg
ZWxlbWVudCA9IEV2ZW50LmVsZW1lbnQoZXZlbnQpOwogICAgICBpZiAoIWV4cHJl
c3Npb24pIHJldHVybiBlbGVtZW50OwogICAgICB2YXIgZWxlbWVudHMgPSBbZWxl
bWVudF0uY29uY2F0KGVsZW1lbnQuYW5jZXN0b3JzKCkpOwogICAgICByZXR1cm4g
U2VsZWN0b3IuZmluZEVsZW1lbnQoZWxlbWVudHMsIGV4cHJlc3Npb24sIDApOwog
ICAgfSwKCiAgICBwb2ludGVyOiBmdW5jdGlvbihldmVudCkgewogICAgICB2YXIg
ZG9jRWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwKICAgICAgYm9k
eSA9IGRvY3VtZW50LmJvZHkgfHwgeyBzY3JvbGxMZWZ0OiAwLCBzY3JvbGxUb3A6
IDAgfTsKICAgICAgcmV0dXJuIHsKICAgICAgICB4OiBldmVudC5wYWdlWCB8fCAo
ZXZlbnQuY2xpZW50WCArCiAgICAgICAgICAoZG9jRWxlbWVudC5zY3JvbGxMZWZ0
IHx8IGJvZHkuc2Nyb2xsTGVmdCkgLQogICAgICAgICAgKGRvY0VsZW1lbnQuY2xp
ZW50TGVmdCB8fCAwKSksCiAgICAgICAgeTogZXZlbnQucGFnZVkgfHwgKGV2ZW50
LmNsaWVudFkgKwogICAgICAgICAgKGRvY0VsZW1lbnQuc2Nyb2xsVG9wIHx8IGJv
ZHkuc2Nyb2xsVG9wKSAtCiAgICAgICAgICAoZG9jRWxlbWVudC5jbGllbnRUb3Ag
fHwgMCkpCiAgICAgIH07CiAgICB9LAoKICAgIHBvaW50ZXJYOiBmdW5jdGlvbihl
dmVudCkgeyByZXR1cm4gRXZlbnQucG9pbnRlcihldmVudCkueCB9LAogICAgcG9p
bnRlclk6IGZ1bmN0aW9uKGV2ZW50KSB7IHJldHVybiBFdmVudC5wb2ludGVyKGV2
ZW50KS55IH0sCgogICAgc3RvcDogZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgRXZl
bnQuZXh0ZW5kKGV2ZW50KTsKICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsK
ICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgIGV2ZW50LnN0b3Bw
ZWQgPSB0cnVlOwogICAgfQogIH07Cn0pKCk7CgpFdmVudC5leHRlbmQgPSAoZnVu
Y3Rpb24oKSB7CiAgdmFyIG1ldGhvZHMgPSBPYmplY3Qua2V5cyhFdmVudC5NZXRo
b2RzKS5pbmplY3QoeyB9LCBmdW5jdGlvbihtLCBuYW1lKSB7CiAgICBtW25hbWVd
ID0gRXZlbnQuTWV0aG9kc1tuYW1lXS5tZXRob2RpemUoKTsKICAgIHJldHVybiBt
OwogIH0pOwoKICBpZiAoUHJvdG90eXBlLkJyb3dzZXIuSUUpIHsKICAgIE9iamVj
dC5leHRlbmQobWV0aG9kcywgewogICAgICBzdG9wUHJvcGFnYXRpb246IGZ1bmN0
aW9uKCkgeyB0aGlzLmNhbmNlbEJ1YmJsZSA9IHRydWUgfSwKICAgICAgcHJldmVu
dERlZmF1bHQ6ICBmdW5jdGlvbigpIHsgdGhpcy5yZXR1cm5WYWx1ZSA9IGZhbHNl
IH0sCiAgICAgIGluc3BlY3Q6IGZ1bmN0aW9uKCkgeyByZXR1cm4gIltvYmplY3Qg
RXZlbnRdIiB9CiAgICB9KTsKCiAgICByZXR1cm4gZnVuY3Rpb24oZXZlbnQpIHsK
ICAgICAgaWYgKCFldmVudCkgcmV0dXJuIGZhbHNlOwogICAgICBpZiAoZXZlbnQu
X2V4dGVuZGVkQnlQcm90b3R5cGUpIHJldHVybiBldmVudDsKCiAgICAgIGV2ZW50
Ll9leHRlbmRlZEJ5UHJvdG90eXBlID0gUHJvdG90eXBlLmVtcHR5RnVuY3Rpb247
CiAgICAgIHZhciBwb2ludGVyID0gRXZlbnQucG9pbnRlcihldmVudCk7CiAgICAg
IE9iamVjdC5leHRlbmQoZXZlbnQsIHsKICAgICAgICB0YXJnZXQ6IGV2ZW50LnNy
Y0VsZW1lbnQsCiAgICAgICAgcmVsYXRlZFRhcmdldDogRXZlbnQucmVsYXRlZFRh
cmdldChldmVudCksCiAgICAgICAgcGFnZVg6ICBwb2ludGVyLngsCiAgICAgICAg
cGFnZVk6ICBwb2ludGVyLnkKICAgICAgfSk7CiAgICAgIHJldHVybiBPYmplY3Qu
ZXh0ZW5kKGV2ZW50LCBtZXRob2RzKTsKICAgIH07CgogIH0gZWxzZSB7CiAgICBF
dmVudC5wcm90b3R5cGUgPSBFdmVudC5wcm90b3R5cGUgfHwgZG9jdW1lbnQuY3Jl
YXRlRXZlbnQoIkhUTUxFdmVudHMiKVsnX19wcm90b19fJ107CiAgICBPYmplY3Qu
ZXh0ZW5kKEV2ZW50LnByb3RvdHlwZSwgbWV0aG9kcyk7CiAgICByZXR1cm4gUHJv
dG90eXBlLks7CiAgfQp9KSgpOwoKT2JqZWN0LmV4dGVuZChFdmVudCwgKGZ1bmN0
aW9uKCkgewogIHZhciBjYWNoZSA9IEV2ZW50LmNhY2hlOwoKICBmdW5jdGlvbiBn
ZXRFdmVudElEKGVsZW1lbnQpIHsKICAgIGlmIChlbGVtZW50Ll9wcm90b3R5cGVF
dmVudElEKSByZXR1cm4gZWxlbWVudC5fcHJvdG90eXBlRXZlbnRJRFswXTsKICAg
IGFyZ3VtZW50cy5jYWxsZWUuaWQgPSBhcmd1bWVudHMuY2FsbGVlLmlkIHx8IDE7
CiAgICByZXR1cm4gZWxlbWVudC5fcHJvdG90eXBlRXZlbnRJRCA9IFsrK2FyZ3Vt
ZW50cy5jYWxsZWUuaWRdOwogIH0KCiAgZnVuY3Rpb24gZ2V0RE9NRXZlbnROYW1l
KGV2ZW50TmFtZSkgewogICAgaWYgKGV2ZW50TmFtZSAmJiBldmVudE5hbWUuaW5j
bHVkZSgnOicpKSByZXR1cm4gImRhdGFhdmFpbGFibGUiOwogICAgcmV0dXJuIGV2
ZW50TmFtZTsKICB9CgogIGZ1bmN0aW9uIGdldENhY2hlRm9ySUQoaWQpIHsKICAg
IHJldHVybiBjYWNoZVtpZF0gPSBjYWNoZVtpZF0gfHwgeyB9OwogIH0KCiAgZnVu
Y3Rpb24gZ2V0V3JhcHBlcnNGb3JFdmVudE5hbWUoaWQsIGV2ZW50TmFtZSkgewog
ICAgdmFyIGMgPSBnZXRDYWNoZUZvcklEKGlkKTsKICAgIHJldHVybiBjW2V2ZW50
TmFtZV0gPSBjW2V2ZW50TmFtZV0gfHwgW107CiAgfQoKICBmdW5jdGlvbiBjcmVh
dGVXcmFwcGVyKGVsZW1lbnQsIGV2ZW50TmFtZSwgaGFuZGxlcikgewogICAgdmFy
IGlkID0gZ2V0RXZlbnRJRChlbGVtZW50KTsKICAgIHZhciBjID0gZ2V0V3JhcHBl
cnNGb3JFdmVudE5hbWUoaWQsIGV2ZW50TmFtZSk7CiAgICBpZiAoYy5wbHVjaygi
aGFuZGxlciIpLmluY2x1ZGUoaGFuZGxlcikpIHJldHVybiBmYWxzZTsKCiAgICB2
YXIgd3JhcHBlciA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgIGlmICghRXZlbnQg
fHwgIUV2ZW50LmV4dGVuZCB8fAogICAgICAgIChldmVudC5ldmVudE5hbWUgJiYg
ZXZlbnQuZXZlbnROYW1lICE9IGV2ZW50TmFtZSkpCiAgICAgICAgICByZXR1cm4g
ZmFsc2U7CgogICAgICBFdmVudC5leHRlbmQoZXZlbnQpOwogICAgICBoYW5kbGVy
LmNhbGwoZWxlbWVudCwgZXZlbnQpOwogICAgfTsKCiAgICB3cmFwcGVyLmhhbmRs
ZXIgPSBoYW5kbGVyOwogICAgYy5wdXNoKHdyYXBwZXIpOwogICAgcmV0dXJuIHdy
YXBwZXI7CiAgfQoKICBmdW5jdGlvbiBmaW5kV3JhcHBlcihpZCwgZXZlbnROYW1l
LCBoYW5kbGVyKSB7CiAgICB2YXIgYyA9IGdldFdyYXBwZXJzRm9yRXZlbnROYW1l
KGlkLCBldmVudE5hbWUpOwogICAgcmV0dXJuIGMuZmluZChmdW5jdGlvbih3cmFw
cGVyKSB7IHJldHVybiB3cmFwcGVyLmhhbmRsZXIgPT0gaGFuZGxlciB9KTsKICB9
CgogIGZ1bmN0aW9uIGRlc3Ryb3lXcmFwcGVyKGlkLCBldmVudE5hbWUsIGhhbmRs
ZXIpIHsKICAgIHZhciBjID0gZ2V0Q2FjaGVGb3JJRChpZCk7CiAgICBpZiAoIWNb
ZXZlbnROYW1lXSkgcmV0dXJuIGZhbHNlOwogICAgY1tldmVudE5hbWVdID0gY1tl
dmVudE5hbWVdLndpdGhvdXQoZmluZFdyYXBwZXIoaWQsIGV2ZW50TmFtZSwgaGFu
ZGxlcikpOwogIH0KCiAgZnVuY3Rpb24gZGVzdHJveUNhY2hlKCkgewogICAgZm9y
ICh2YXIgaWQgaW4gY2FjaGUpCiAgICAgIGZvciAodmFyIGV2ZW50TmFtZSBpbiBj
YWNoZVtpZF0pCiAgICAgICAgY2FjaGVbaWRdW2V2ZW50TmFtZV0gPSBudWxsOwog
IH0KCgogIC8vIEludGVybmV0IEV4cGxvcmVyIG5lZWRzIHRvIHJlbW92ZSBldmVu
dCBoYW5kbGVycyBvbiBwYWdlIHVubG9hZAogIC8vIGluIG9yZGVyIHRvIGF2b2lk
IG1lbW9yeSBsZWFrcy4KICBpZiAod2luZG93LmF0dGFjaEV2ZW50KSB7CiAgICB3
aW5kb3cuYXR0YWNoRXZlbnQoIm9udW5sb2FkIiwgZGVzdHJveUNhY2hlKTsKICB9
CgogIC8vIFNhZmFyaSBoYXMgYSBkdW1teSBldmVudCBoYW5kbGVyIG9uIHBhZ2Ug
dW5sb2FkIHNvIHRoYXQgaXQgd29uJ3QKICAvLyB1c2UgaXRzIGJmY2FjaGUuIFNh
ZmFyaSA8PSAzLjEgaGFzIGFuIGlzc3VlIHdpdGggcmVzdG9yaW5nIHRoZSAiZG9j
dW1lbnQiCiAgLy8gb2JqZWN0IHdoZW4gcGFnZSBpcyByZXR1cm5lZCB0byB2aWEg
dGhlIGJhY2sgYnV0dG9uIHVzaW5nIGl0cyBiZmNhY2hlLgogIGlmIChQcm90b3R5
cGUuQnJvd3Nlci5XZWJLaXQpIHsKICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCd1bmxvYWQnLCBQcm90b3R5cGUuZW1wdHlGdW5jdGlvbiwgZmFsc2UpOwogIH0K
CiAgcmV0dXJuIHsKICAgIG9ic2VydmU6IGZ1bmN0aW9uKGVsZW1lbnQsIGV2ZW50
TmFtZSwgaGFuZGxlcikgewogICAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAg
ICAgdmFyIG5hbWUgPSBnZXRET01FdmVudE5hbWUoZXZlbnROYW1lKTsKCiAgICAg
IHZhciB3cmFwcGVyID0gY3JlYXRlV3JhcHBlcihlbGVtZW50LCBldmVudE5hbWUs
IGhhbmRsZXIpOwogICAgICBpZiAoIXdyYXBwZXIpIHJldHVybiBlbGVtZW50OwoK
ICAgICAgaWYgKGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcikgewogICAgICAgIGVs
ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihuYW1lLCB3cmFwcGVyLCBmYWxzZSk7CiAg
ICAgIH0gZWxzZSB7CiAgICAgICAgZWxlbWVudC5hdHRhY2hFdmVudCgib24iICsg
bmFtZSwgd3JhcHBlcik7CiAgICAgIH0KCiAgICAgIHJldHVybiBlbGVtZW50Owog
ICAgfSwKCiAgICBzdG9wT2JzZXJ2aW5nOiBmdW5jdGlvbihlbGVtZW50LCBldmVu
dE5hbWUsIGhhbmRsZXIpIHsKICAgICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAg
ICAgIHZhciBpZCA9IGdldEV2ZW50SUQoZWxlbWVudCksIG5hbWUgPSBnZXRET01F
dmVudE5hbWUoZXZlbnROYW1lKTsKCiAgICAgIGlmICghaGFuZGxlciAmJiBldmVu
dE5hbWUpIHsKICAgICAgICBnZXRXcmFwcGVyc0ZvckV2ZW50TmFtZShpZCwgZXZl
bnROYW1lKS5lYWNoKGZ1bmN0aW9uKHdyYXBwZXIpIHsKICAgICAgICAgIGVsZW1l
bnQuc3RvcE9ic2VydmluZyhldmVudE5hbWUsIHdyYXBwZXIuaGFuZGxlcik7CiAg
ICAgICAgfSk7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CgogICAgICB9IGVsc2Ug
aWYgKCFldmVudE5hbWUpIHsKICAgICAgICBPYmplY3Qua2V5cyhnZXRDYWNoZUZv
cklEKGlkKSkuZWFjaChmdW5jdGlvbihldmVudE5hbWUpIHsKICAgICAgICAgIGVs
ZW1lbnQuc3RvcE9ic2VydmluZyhldmVudE5hbWUpOwogICAgICAgIH0pOwogICAg
ICAgIHJldHVybiBlbGVtZW50OwogICAgICB9CgogICAgICB2YXIgd3JhcHBlciA9
IGZpbmRXcmFwcGVyKGlkLCBldmVudE5hbWUsIGhhbmRsZXIpOwogICAgICBpZiAo
IXdyYXBwZXIpIHJldHVybiBlbGVtZW50OwoKICAgICAgaWYgKGVsZW1lbnQucmVt
b3ZlRXZlbnRMaXN0ZW5lcikgewogICAgICAgIGVsZW1lbnQucmVtb3ZlRXZlbnRM
aXN0ZW5lcihuYW1lLCB3cmFwcGVyLCBmYWxzZSk7CiAgICAgIH0gZWxzZSB7CiAg
ICAgICAgZWxlbWVudC5kZXRhY2hFdmVudCgib24iICsgbmFtZSwgd3JhcHBlcik7
CiAgICAgIH0KCiAgICAgIGRlc3Ryb3lXcmFwcGVyKGlkLCBldmVudE5hbWUsIGhh
bmRsZXIpOwoKICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9LAoKICAgIGZpcmU6
IGZ1bmN0aW9uKGVsZW1lbnQsIGV2ZW50TmFtZSwgbWVtbykgewogICAgICBlbGVt
ZW50ID0gJChlbGVtZW50KTsKICAgICAgaWYgKGVsZW1lbnQgPT0gZG9jdW1lbnQg
JiYgZG9jdW1lbnQuY3JlYXRlRXZlbnQgJiYgIWVsZW1lbnQuZGlzcGF0Y2hFdmVu
dCkKICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OwoK
ICAgICAgdmFyIGV2ZW50OwogICAgICBpZiAoZG9jdW1lbnQuY3JlYXRlRXZlbnQp
IHsKICAgICAgICBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJIVE1MRXZl
bnRzIik7CiAgICAgICAgZXZlbnQuaW5pdEV2ZW50KCJkYXRhYXZhaWxhYmxlIiwg
dHJ1ZSwgdHJ1ZSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZXZlbnQgPSBkb2N1
bWVudC5jcmVhdGVFdmVudE9iamVjdCgpOwogICAgICAgIGV2ZW50LmV2ZW50VHlw
ZSA9ICJvbmRhdGFhdmFpbGFibGUiOwogICAgICB9CgogICAgICBldmVudC5ldmVu
dE5hbWUgPSBldmVudE5hbWU7CiAgICAgIGV2ZW50Lm1lbW8gPSBtZW1vIHx8IHsg
fTsKCiAgICAgIGlmIChkb2N1bWVudC5jcmVhdGVFdmVudCkgewogICAgICAgIGVs
ZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgZWxlbWVudC5maXJlRXZlbnQoZXZlbnQuZXZlbnRUeXBlLCBldmVudCk7CiAg
ICAgIH0KCiAgICAgIHJldHVybiBFdmVudC5leHRlbmQoZXZlbnQpOwogICAgfQog
IH07Cn0pKCkpOwoKT2JqZWN0LmV4dGVuZChFdmVudCwgRXZlbnQuTWV0aG9kcyk7
CgpFbGVtZW50LmFkZE1ldGhvZHMoewogIGZpcmU6ICAgICAgICAgIEV2ZW50LmZp
cmUsCiAgb2JzZXJ2ZTogICAgICAgRXZlbnQub2JzZXJ2ZSwKICBzdG9wT2JzZXJ2
aW5nOiBFdmVudC5zdG9wT2JzZXJ2aW5nCn0pOwoKT2JqZWN0LmV4dGVuZChkb2N1
bWVudCwgewogIGZpcmU6ICAgICAgICAgIEVsZW1lbnQuTWV0aG9kcy5maXJlLm1l
dGhvZGl6ZSgpLAogIG9ic2VydmU6ICAgICAgIEVsZW1lbnQuTWV0aG9kcy5vYnNl
cnZlLm1ldGhvZGl6ZSgpLAogIHN0b3BPYnNlcnZpbmc6IEVsZW1lbnQuTWV0aG9k
cy5zdG9wT2JzZXJ2aW5nLm1ldGhvZGl6ZSgpLAogIGxvYWRlZDogICAgICAgIGZh
bHNlCn0pOwoKKGZ1bmN0aW9uKCkgewogIC8qIFN1cHBvcnQgZm9yIHRoZSBET01D
b250ZW50TG9hZGVkIGV2ZW50IGlzIGJhc2VkIG9uIHdvcmsgYnkgRGFuIFdlYmIs
CiAgICAgTWF0dGhpYXMgTWlsbGVyLCBEZWFuIEVkd2FyZHMgYW5kIEpvaG4gUmVz
aWcuICovCgogIHZhciB0aW1lcjsKCiAgZnVuY3Rpb24gZmlyZUNvbnRlbnRMb2Fk
ZWRFdmVudCgpIHsKICAgIGlmIChkb2N1bWVudC5sb2FkZWQpIHJldHVybjsKICAg
IGlmICh0aW1lcikgd2luZG93LmNsZWFySW50ZXJ2YWwodGltZXIpOwogICAgZG9j
dW1lbnQuZmlyZSgiZG9tOmxvYWRlZCIpOwogICAgZG9jdW1lbnQubG9hZGVkID0g
dHJ1ZTsKICB9CgogIGlmIChkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKSB7CiAg
ICBpZiAoUHJvdG90eXBlLkJyb3dzZXIuV2ViS2l0KSB7CiAgICAgIHRpbWVyID0g
d2luZG93LnNldEludGVydmFsKGZ1bmN0aW9uKCkgewogICAgICAgIGlmICgvbG9h
ZGVkfGNvbXBsZXRlLy50ZXN0KGRvY3VtZW50LnJlYWR5U3RhdGUpKQogICAgICAg
ICAgZmlyZUNvbnRlbnRMb2FkZWRFdmVudCgpOwogICAgICB9LCAwKTsKCiAgICAg
IEV2ZW50Lm9ic2VydmUod2luZG93LCAibG9hZCIsIGZpcmVDb250ZW50TG9hZGVk
RXZlbnQpOwoKICAgIH0gZWxzZSB7CiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlz
dGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLAogICAgICAgIGZpcmVDb250ZW50TG9h
ZGVkRXZlbnQsIGZhbHNlKTsKICAgIH0KCiAgfSBlbHNlIHsKICAgIGRvY3VtZW50
LndyaXRlKCI8c2NyaXB0IGlkPV9fb25ET01Db250ZW50TG9hZGVkIGRlZmVyIHNy
Yz0vLzo+PFwvc2NyaXB0PiIpOwogICAgJCgiX19vbkRPTUNvbnRlbnRMb2FkZWQi
KS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpIHsKICAgICAgaWYgKHRo
aXMucmVhZHlTdGF0ZSA9PSAiY29tcGxldGUiKSB7CiAgICAgICAgdGhpcy5vbnJl
YWR5c3RhdGVjaGFuZ2UgPSBudWxsOwogICAgICAgIGZpcmVDb250ZW50TG9hZGVk
RXZlbnQoKTsKICAgICAgfQogICAgfTsKICB9Cn0pKCk7Ci8qLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSBERVBSRUNBVEVEIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0qLwoKSGFzaC50b1F1ZXJ5U3RyaW5nID0gT2JqZWN0LnRv
UXVlcnlTdHJpbmc7Cgp2YXIgVG9nZ2xlID0geyBkaXNwbGF5OiBFbGVtZW50LnRv
Z2dsZSB9OwoKRWxlbWVudC5NZXRob2RzLmNoaWxkT2YgPSBFbGVtZW50Lk1ldGhv
ZHMuZGVzY2VuZGFudE9mOwoKdmFyIEluc2VydGlvbiA9IHsKICBCZWZvcmU6IGZ1
bmN0aW9uKGVsZW1lbnQsIGNvbnRlbnQpIHsKICAgIHJldHVybiBFbGVtZW50Lmlu
c2VydChlbGVtZW50LCB7YmVmb3JlOmNvbnRlbnR9KTsKICB9LAoKICBUb3A6IGZ1
bmN0aW9uKGVsZW1lbnQsIGNvbnRlbnQpIHsKICAgIHJldHVybiBFbGVtZW50Lmlu
c2VydChlbGVtZW50LCB7dG9wOmNvbnRlbnR9KTsKICB9LAoKICBCb3R0b206IGZ1
bmN0aW9uKGVsZW1lbnQsIGNvbnRlbnQpIHsKICAgIHJldHVybiBFbGVtZW50Lmlu
c2VydChlbGVtZW50LCB7Ym90dG9tOmNvbnRlbnR9KTsKICB9LAoKICBBZnRlcjog
ZnVuY3Rpb24oZWxlbWVudCwgY29udGVudCkgewogICAgcmV0dXJuIEVsZW1lbnQu
aW5zZXJ0KGVsZW1lbnQsIHthZnRlcjpjb250ZW50fSk7CiAgfQp9OwoKdmFyICRj
b250aW51ZSA9IG5ldyBFcnJvcignInRocm93ICRjb250aW51ZSIgaXMgZGVwcmVj
YXRlZCwgdXNlICJyZXR1cm4iIGluc3RlYWQnKTsKCi8vIFRoaXMgc2hvdWxkIGJl
IG1vdmVkIHRvIHNjcmlwdC5hY3Vsby51czsgbm90aWNlIHRoZSBkZXByZWNhdGVk
IG1ldGhvZHMKLy8gZnVydGhlciBiZWxvdywgdGhhdCBtYXAgdG8gdGhlIG5ld2Vy
IEVsZW1lbnQgbWV0aG9kcy4KdmFyIFBvc2l0aW9uID0gewogIC8vIHNldCB0byB0
cnVlIGlmIG5lZWRlZCwgd2FybmluZzogZmlyZWZveCBwZXJmb3JtYW5jZSBwcm9i
bGVtcwogIC8vIE5PVCBuZWVlZGVkIGZvciBwYWdlIHNjcm9sbGluZywgb25seSBp
ZiBkcmFnZ2FibGUgY29udGFpbmVkIGluCiAgLy8gc2Nyb2xsYWJsZSBlbGVtZW50
cwogIGluY2x1ZGVTY3JvbGxPZmZzZXRzOiBmYWxzZSwKCiAgLy8gbXVzdCBiZSBj
YWxsZWQgYmVmb3JlIGNhbGxpbmcgd2l0aGluSW5jbHVkaW5nU2Nyb2xsb2Zmc2V0
LCBldmVyeSB0aW1lIHRoZQogIC8vIHBhZ2UgaXMgc2Nyb2xsZWQKICBwcmVwYXJl
OiBmdW5jdGlvbigpIHsKICAgIHRoaXMuZGVsdGFYID0gIHdpbmRvdy5wYWdlWE9m
ZnNldAogICAgICAgICAgICAgICAgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50
LnNjcm9sbExlZnQKICAgICAgICAgICAgICAgIHx8IGRvY3VtZW50LmJvZHkuc2Ny
b2xsTGVmdAogICAgICAgICAgICAgICAgfHwgMDsKICAgIHRoaXMuZGVsdGFZID0g
IHdpbmRvdy5wYWdlWU9mZnNldAogICAgICAgICAgICAgICAgfHwgZG9jdW1lbnQu
ZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcAogICAgICAgICAgICAgICAgfHwgZG9j
dW1lbnQuYm9keS5zY3JvbGxUb3AKICAgICAgICAgICAgICAgIHx8IDA7CiAgfSwK
CiAgLy8gY2FjaGVzIHgveSBjb29yZGluYXRlIHBhaXIgdG8gdXNlIHdpdGggb3Zl
cmxhcAogIHdpdGhpbjogZnVuY3Rpb24oZWxlbWVudCwgeCwgeSkgewogICAgaWYg
KHRoaXMuaW5jbHVkZVNjcm9sbE9mZnNldHMpCiAgICAgIHJldHVybiB0aGlzLndp
dGhpbkluY2x1ZGluZ1Njcm9sbG9mZnNldHMoZWxlbWVudCwgeCwgeSk7CiAgICB0
aGlzLnhjb21wID0geDsKICAgIHRoaXMueWNvbXAgPSB5OwogICAgdGhpcy5vZmZz
ZXQgPSBFbGVtZW50LmN1bXVsYXRpdmVPZmZzZXQoZWxlbWVudCk7CgogICAgcmV0
dXJuICh5ID49IHRoaXMub2Zmc2V0WzFdICYmCiAgICAgICAgICAgIHkgPCAgdGhp
cy5vZmZzZXRbMV0gKyBlbGVtZW50Lm9mZnNldEhlaWdodCAmJgogICAgICAgICAg
ICB4ID49IHRoaXMub2Zmc2V0WzBdICYmCiAgICAgICAgICAgIHggPCAgdGhpcy5v
ZmZzZXRbMF0gKyBlbGVtZW50Lm9mZnNldFdpZHRoKTsKICB9LAoKICB3aXRoaW5J
bmNsdWRpbmdTY3JvbGxvZmZzZXRzOiBmdW5jdGlvbihlbGVtZW50LCB4LCB5KSB7
CiAgICB2YXIgb2Zmc2V0Y2FjaGUgPSBFbGVtZW50LmN1bXVsYXRpdmVTY3JvbGxP
ZmZzZXQoZWxlbWVudCk7CgogICAgdGhpcy54Y29tcCA9IHggKyBvZmZzZXRjYWNo
ZVswXSAtIHRoaXMuZGVsdGFYOwogICAgdGhpcy55Y29tcCA9IHkgKyBvZmZzZXRj
YWNoZVsxXSAtIHRoaXMuZGVsdGFZOwogICAgdGhpcy5vZmZzZXQgPSBFbGVtZW50
LmN1bXVsYXRpdmVPZmZzZXQoZWxlbWVudCk7CgogICAgcmV0dXJuICh0aGlzLnlj
b21wID49IHRoaXMub2Zmc2V0WzFdICYmCiAgICAgICAgICAgIHRoaXMueWNvbXAg
PCAgdGhpcy5vZmZzZXRbMV0gKyBlbGVtZW50Lm9mZnNldEhlaWdodCAmJgogICAg
ICAgICAgICB0aGlzLnhjb21wID49IHRoaXMub2Zmc2V0WzBdICYmCiAgICAgICAg
ICAgIHRoaXMueGNvbXAgPCAgdGhpcy5vZmZzZXRbMF0gKyBlbGVtZW50Lm9mZnNl
dFdpZHRoKTsKICB9LAoKICAvLyB3aXRoaW4gbXVzdCBiZSBjYWxsZWQgZGlyZWN0
bHkgYmVmb3JlCiAgb3ZlcmxhcDogZnVuY3Rpb24obW9kZSwgZWxlbWVudCkgewog
ICAgaWYgKCFtb2RlKSByZXR1cm4gMDsKICAgIGlmIChtb2RlID09ICd2ZXJ0aWNh
bCcpCiAgICAgIHJldHVybiAoKHRoaXMub2Zmc2V0WzFdICsgZWxlbWVudC5vZmZz
ZXRIZWlnaHQpIC0gdGhpcy55Y29tcCkgLwogICAgICAgIGVsZW1lbnQub2Zmc2V0
SGVpZ2h0OwogICAgaWYgKG1vZGUgPT0gJ2hvcml6b250YWwnKQogICAgICByZXR1
cm4gKCh0aGlzLm9mZnNldFswXSArIGVsZW1lbnQub2Zmc2V0V2lkdGgpIC0gdGhp
cy54Y29tcCkgLwogICAgICAgIGVsZW1lbnQub2Zmc2V0V2lkdGg7CiAgfSwKCiAg
Ly8gRGVwcmVjYXRpb24gbGF5ZXIgLS0gdXNlIG5ld2VyIEVsZW1lbnQgbWV0aG9k
cyBub3cgKDEuNS4yKS4KCiAgY3VtdWxhdGl2ZU9mZnNldDogRWxlbWVudC5NZXRo
b2RzLmN1bXVsYXRpdmVPZmZzZXQsCgogIHBvc2l0aW9uZWRPZmZzZXQ6IEVsZW1l
bnQuTWV0aG9kcy5wb3NpdGlvbmVkT2Zmc2V0LAoKICBhYnNvbHV0aXplOiBmdW5j
dGlvbihlbGVtZW50KSB7CiAgICBQb3NpdGlvbi5wcmVwYXJlKCk7CiAgICByZXR1
cm4gRWxlbWVudC5hYnNvbHV0aXplKGVsZW1lbnQpOwogIH0sCgogIHJlbGF0aXZp
emU6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIFBvc2l0aW9uLnByZXBhcmUoKTsK
ICAgIHJldHVybiBFbGVtZW50LnJlbGF0aXZpemUoZWxlbWVudCk7CiAgfSwKCiAg
cmVhbE9mZnNldDogRWxlbWVudC5NZXRob2RzLmN1bXVsYXRpdmVTY3JvbGxPZmZz
ZXQsCgogIG9mZnNldFBhcmVudDogRWxlbWVudC5NZXRob2RzLmdldE9mZnNldFBh
cmVudCwKCiAgcGFnZTogRWxlbWVudC5NZXRob2RzLnZpZXdwb3J0T2Zmc2V0LAoK
ICBjbG9uZTogZnVuY3Rpb24oc291cmNlLCB0YXJnZXQsIG9wdGlvbnMpIHsKICAg
IG9wdGlvbnMgPSBvcHRpb25zIHx8IHsgfTsKICAgIHJldHVybiBFbGVtZW50LmNs
b25lUG9zaXRpb24odGFyZ2V0LCBzb3VyY2UsIG9wdGlvbnMpOwogIH0KfTsKCi8q
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKaWYgKCFkb2N1bWVudC5nZXRF
bGVtZW50c0J5Q2xhc3NOYW1lKSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NO
YW1lID0gZnVuY3Rpb24oaW5zdGFuY2VNZXRob2RzKXsKICBmdW5jdGlvbiBpdGVy
KG5hbWUpIHsKICAgIHJldHVybiBuYW1lLmJsYW5rKCkgPyBudWxsIDogIltjb250
YWlucyhjb25jYXQoJyAnLCBAY2xhc3MsICcgJyksICcgIiArIG5hbWUgKyAiICcp
XSI7CiAgfQoKICBpbnN0YW5jZU1ldGhvZHMuZ2V0RWxlbWVudHNCeUNsYXNzTmFt
ZSA9IFByb3RvdHlwZS5Ccm93c2VyRmVhdHVyZXMuWFBhdGggPwogIGZ1bmN0aW9u
KGVsZW1lbnQsIGNsYXNzTmFtZSkgewogICAgY2xhc3NOYW1lID0gY2xhc3NOYW1l
LnRvU3RyaW5nKCkuc3RyaXAoKTsKICAgIHZhciBjb25kID0gL1xzLy50ZXN0KGNs
YXNzTmFtZSkgPyAkdyhjbGFzc05hbWUpLm1hcChpdGVyKS5qb2luKCcnKSA6IGl0
ZXIoY2xhc3NOYW1lKTsKICAgIHJldHVybiBjb25kID8gZG9jdW1lbnQuX2dldEVs
ZW1lbnRzQnlYUGF0aCgnLi8vKicgKyBjb25kLCBlbGVtZW50KSA6IFtdOwogIH0g
OiBmdW5jdGlvbihlbGVtZW50LCBjbGFzc05hbWUpIHsKICAgIGNsYXNzTmFtZSA9
IGNsYXNzTmFtZS50b1N0cmluZygpLnN0cmlwKCk7CiAgICB2YXIgZWxlbWVudHMg
PSBbXSwgY2xhc3NOYW1lcyA9ICgvXHMvLnRlc3QoY2xhc3NOYW1lKSA/ICR3KGNs
YXNzTmFtZSkgOiBudWxsKTsKICAgIGlmICghY2xhc3NOYW1lcyAmJiAhY2xhc3NO
YW1lKSByZXR1cm4gZWxlbWVudHM7CgogICAgdmFyIG5vZGVzID0gJChlbGVtZW50
KS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnKicpOwogICAgY2xhc3NOYW1lID0gJyAn
ICsgY2xhc3NOYW1lICsgJyAnOwoKICAgIGZvciAodmFyIGkgPSAwLCBjaGlsZCwg
Y247IGNoaWxkID0gbm9kZXNbaV07IGkrKykgewogICAgICBpZiAoY2hpbGQuY2xh
c3NOYW1lICYmIChjbiA9ICcgJyArIGNoaWxkLmNsYXNzTmFtZSArICcgJykgJiYg
KGNuLmluY2x1ZGUoY2xhc3NOYW1lKSB8fAogICAgICAgICAgKGNsYXNzTmFtZXMg
JiYgY2xhc3NOYW1lcy5hbGwoZnVuY3Rpb24obmFtZSkgewogICAgICAgICAgICBy
ZXR1cm4gIW5hbWUudG9TdHJpbmcoKS5ibGFuaygpICYmIGNuLmluY2x1ZGUoJyAn
ICsgbmFtZSArICcgJyk7CiAgICAgICAgICB9KSkpKQogICAgICAgIGVsZW1lbnRz
LnB1c2goRWxlbWVudC5leHRlbmQoY2hpbGQpKTsKICAgIH0KICAgIHJldHVybiBl
bGVtZW50czsKICB9OwoKICByZXR1cm4gZnVuY3Rpb24oY2xhc3NOYW1lLCBwYXJl
bnRFbGVtZW50KSB7CiAgICByZXR1cm4gJChwYXJlbnRFbGVtZW50IHx8IGRvY3Vt
ZW50LmJvZHkpLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoY2xhc3NOYW1lKTsKICB9
Owp9KEVsZW1lbnQuTWV0aG9kcyk7CgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKi8KCkVsZW1lbnQuQ2xhc3NOYW1lcyA9IENsYXNzLmNyZWF0ZSgpOwpFbGVt
ZW50LkNsYXNzTmFtZXMucHJvdG90eXBlID0gewogIGluaXRpYWxpemU6IGZ1bmN0
aW9uKGVsZW1lbnQpIHsKICAgIHRoaXMuZWxlbWVudCA9ICQoZWxlbWVudCk7CiAg
fSwKCiAgX2VhY2g6IGZ1bmN0aW9uKGl0ZXJhdG9yKSB7CiAgICB0aGlzLmVsZW1l
bnQuY2xhc3NOYW1lLnNwbGl0KC9ccysvKS5zZWxlY3QoZnVuY3Rpb24obmFtZSkg
ewogICAgICByZXR1cm4gbmFtZS5sZW5ndGggPiAwOwogICAgfSkuX2VhY2goaXRl
cmF0b3IpOwogIH0sCgogIHNldDogZnVuY3Rpb24oY2xhc3NOYW1lKSB7CiAgICB0
aGlzLmVsZW1lbnQuY2xhc3NOYW1lID0gY2xhc3NOYW1lOwogIH0sCgogIGFkZDog
ZnVuY3Rpb24oY2xhc3NOYW1lVG9BZGQpIHsKICAgIGlmICh0aGlzLmluY2x1ZGUo
Y2xhc3NOYW1lVG9BZGQpKSByZXR1cm47CiAgICB0aGlzLnNldCgkQSh0aGlzKS5j
b25jYXQoY2xhc3NOYW1lVG9BZGQpLmpvaW4oJyAnKSk7CiAgfSwKCiAgcmVtb3Zl
OiBmdW5jdGlvbihjbGFzc05hbWVUb1JlbW92ZSkgewogICAgaWYgKCF0aGlzLmlu
Y2x1ZGUoY2xhc3NOYW1lVG9SZW1vdmUpKSByZXR1cm47CiAgICB0aGlzLnNldCgk
QSh0aGlzKS53aXRob3V0KGNsYXNzTmFtZVRvUmVtb3ZlKS5qb2luKCcgJykpOwog
IH0sCgogIHRvU3RyaW5nOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiAkQSh0aGlz
KS5qb2luKCcgJyk7CiAgfQp9OwoKT2JqZWN0LmV4dGVuZChFbGVtZW50LkNsYXNz
TmFtZXMucHJvdG90eXBlLCBFbnVtZXJhYmxlKTsKCi8qLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0qLwoKRWxlbWVudC5hZGRNZXRob2RzKCk7
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=main.js
Content-Type: application/x-javascript; charset=UTF-8; name=main.js
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/js/main.js
Content-Transfer-Encoding: Base64
Ly8gRm9yIHRoZSBuYXZpZ2F0aW9uIGRyb3Bkb3duIG1lbnVzIGFuZCBSZWxhdGVk
IENvbnRlbnQgaG92ZXJzOgovLyBzY3JpcHQgdG8gbWFrZSBJRSB0byByZWNvZ25p
emUgaG92ZXIgc3RhdGUgb3ZlciBsaXN0IGl0ZW1zCi8vIGJvcnJvd2VkIGZyb20g
dGhlICJTdWNrZXJmaXNoIERyb3Bkb3ducyIKLy8gKHd3dy5hbGlzdGFwYXJ0LmNv
bS9hcnRpY2xlcy9kcm9wZG93bnMpCnN0YXJ0TGlzdCA9IGZ1bmN0aW9uKCkgewoJ
aWYgKGRvY3VtZW50LmFsbCYmZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQpIHsKCQkv
LyBmb3IgZHJvcGRvd24gbmF2CgkJaWYgKCQoJ25hdicpKSB7CgkJCW5hdlJvb3Qg
PSAkKCduYXYnKTsKCQkJZm9yIChpPTA7IGk8bmF2Um9vdC5jaGlsZE5vZGVzLmxl
bmd0aDsgaSsrKSB7CgkJCQlub2RlID0gbmF2Um9vdC5jaGlsZE5vZGVzW2ldOwoJ
CQkJaWYgKG5vZGUubm9kZU5hbWU9PSJMSSIpIHsKCQkJCQlub2RlLm9ubW91c2Vv
dmVyPWZ1bmN0aW9uKCkgewoJCQkJCQl0aGlzLmNsYXNzTmFtZSs9IiBvdmVyIjsK
CQkJCQl9CgkJCQkJbm9kZS5vbm1vdXNlb3V0PWZ1bmN0aW9uKCkgewoJCQkJCQl0
aGlzLmNsYXNzTmFtZT10aGlzLmNsYXNzTmFtZS5yZXBsYWNlKCIgb3ZlciIsICIi
KTsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgkJLy8gZm9yIFJlbGF0ZWQgQ29udGVu
dCBob3ZlcnMgYW5kCgkJaWYgKCQoJ3JlbGF0ZWRBcnRpY2xlcycpKSB7CgkJCXJj
Um9vdCA9ICQoJ3JlbGF0ZWRBcnRpY2xlcycpOwoJCQlmb3IgKGk9MDsgaTxyY1Jv
b3QuY2hpbGROb2Rlcy5sZW5ndGg7IGkrKykgewoJCQkJbm9kZSA9IHJjUm9vdC5j
aGlsZE5vZGVzW2ldOwoJCQkJaWYgKG5vZGUubm9kZU5hbWU9PSJMSSIpIHsKCQkJ
CQlub2RlLm9ubW91c2VvdmVyPWZ1bmN0aW9uKCkgewoJCQkJCQl0aGlzLmNsYXNz
TmFtZSs9IiBvdmVyIjsKCQkJCQl9CgkJCQkJbm9kZS5vbm1vdXNlb3V0PWZ1bmN0
aW9uKCkgewoJCQkJCQl0aGlzLmNsYXNzTmFtZT10aGlzLmNsYXNzTmFtZS5yZXBs
YWNlKCIgb3ZlciIsICIiKTsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgkJLy8gZm9y
IENpdGVkIEJ5IGhvdmVycwoJCWlmICgkKCdjaXRlZEJ5JykpIHsKCQkJY2JSb290
ID0gJCgnY2l0ZWRCeScpOwoJCQlmb3IgKGk9MDsgaTxjYlJvb3QuY2hpbGROb2Rl
cy5sZW5ndGg7IGkrKykgewoJCQkJbm9kZSA9IGNiUm9vdC5jaGlsZE5vZGVzW2ld
OwoJCQkJaWYgKG5vZGUubm9kZU5hbWU9PSJMSSIpIHsKCQkJCQlub2RlLm9ubW91
c2VvdmVyPWZ1bmN0aW9uKCkgewoJCQkJCQl0aGlzLmNsYXNzTmFtZSs9IiBvdmVy
IjsKCQkJCQl9CgkJCQkJbm9kZS5vbm1vdXNlb3V0PWZ1bmN0aW9uKCkgewoJCQkJ
CQl0aGlzLmNsYXNzTmFtZT10aGlzLmNsYXNzTmFtZS5yZXBsYWNlKCIgb3ZlciIs
ICIiKTsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9Cgl9Cn0KRXZlbnQub2JzZXJ2ZSh3
aW5kb3csICJsb2FkIiwgc3RhcnRMaXN0KTsKCi8vIFNhbWUgYXMgYWJvdmUsIGJ1
dCBmb3IgdGhlIFJlbGF0ZWQgQ29udGVudCBob3ZlcnMKZnVuY3Rpb24gaWVSZWxh
dGVkICgpIHsKaWYgKGRvY3VtZW50LmFsbCYmZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQpIHsKbmF2Um9vdCA9ICQoJ3JlbGF0ZWRBcnRpY2xlcycpOwpmb3IgKGk9MDsg
aTxuYXZSb290LmNoaWxkTm9kZXMubGVuZ3RoOyBpKyspIHsKbm9kZSA9IG5hdlJv
b3QuY2hpbGROb2Rlc1tpXTsKaWYgKG5vZGUubm9kZU5hbWU9PSJMSSIpIHsKbm9k
ZS5vbm1vdXNlb3Zlcj1mdW5jdGlvbigpIHsKdGhpcy5jbGFzc05hbWUrPSIgb3Zl
ciI7CiAgfQogIG5vZGUub25tb3VzZW91dD1mdW5jdGlvbigpIHsKICB0aGlzLmNs
YXNzTmFtZT10aGlzLmNsYXNzTmFtZS5yZXBsYWNlKCIgb3ZlciIsICIiKTsKICAg
fQogICB9CiAgfQogfQp9CgovLyBGb3IgY2xlYXJpbmcvcmVwb3B1bGF0aW5nIHRo
ZSBzZWFyY2ggaW5wdXQgYm94LAovLyBjaXRhdGlvbiBqdW1wIGlucHV0IGJveGVz
LCBhbmQgRE9JIGlucHV0IGJveGVzCi8vIEF0eXBvbiB2ZXJzaW9uCmZ1bmN0aW9u
IGZsaXBEZWZhdWx0KGZpZWxkKSB7CiAgICBpZiAoIWZpZWxkLmRlZmF1bHRWYWx1
ZSkgZmllbGQuZGVmYXVsdFZhbHVlID0gZmllbGQudmFsdWU7CiAgICBpZiAoZmll
bGQudmFsdWUgPT0gZmllbGQuZGVmYXVsdFZhbHVlKSBmaWVsZC52YWx1ZSA9ICIi
OwogICAgZWxzZSBpZiAoZmllbGQudmFsdWUgPT0gIiIpIGZpZWxkLnZhbHVlID0g
ZmllbGQuZGVmYXVsdFZhbHVlOwp9CgpmdW5jdGlvbiBjaGVja0lucHV0KGFUeXBl
KSB7Cgl2YXIgaW5wdXRzID0gKGFUeXBlID09ICdhZHZhbmNlZCcpID8KCQkJCSBb
J2FkdlNlYXJjaFRleHQnLCAnYWR2VGl0bGUnLCAnYWR2QXV0aG9yJywgJ2FkdkFi
c3RyYWN0JywgJ2FkdkZpZ3VyZSddIDoKCQkJCSBbJ3NlYXJjaFRleHQnXTsKCXZh
ciB2YWxpZCA9IGZhbHNlOwoJZm9yICh2YXIgaT0wOyBpPGlucHV0cy5sZW5ndGg7
IGkrKykgewoJCXZhciBpbnB1dCA9ICQoaW5wdXRzW2ldKTsKCQl2YWxpZCB8PSBp
bnB1dCAmJgoJCQkJIChpbnB1dC50eXBlID09ICd0ZXh0JykgJiYKCQkJCSAoaW5w
dXQudmFsdWUgIT0gJ0VudGVyIFRpdGxlLCBLZXl3b3JkcywgQXV0aG9ycywgb3Ig
RE9JJykgJiYKCQkJCSAoaW5wdXQudmFsdWUucmVwbGFjZSgvXlxzK3xccyskL2cs
JycpLmxlbmd0aCA+IDApOwoJfQoJaWYgKCEgdmFsaWQpIHsKCQlhbGVydCgiRW50
ZXIgc2VhcmNoIGNyaXRlcmlhLiIpOwoJCXJldHVybiBmYWxzZTsKCX0KCXJldHVy
biB0cnVlOwp9CgpmdW5jdGlvbiBzdWJtaXRBZHZTZWFyY2goKSB7CglpZiAoY2hl
Y2tJbnB1dCgnYWR2YW5jZWQnKSkgewoJCWRvY3VtZW50LmFkdlNlYXJjaC5zdWJt
aXQoKTsKCQlyZXR1cm4gdHJ1ZTsKCX0KCXJldHVybiBmYWxzZTsKfQoKLy8gRm9y
IGNsZWFyaW5nL3JlcG9wdWxhdGluZyB0aGUgc2VhcmNoIGlucHV0IGJveCwKLy8g
Y2l0YXRpb24ganVtcCBpbnB1dCBib3hlcywgYW5kIERPSSBpbnB1dCBib3hlcwov
L3NvbWUgQXR5cG9uIG5hbWUgY2hhbmdlcy4uCmZ1bmN0aW9uIGV2YWxCb3godGV4
dGJveCkgewogICAgaWYgKHRleHRib3g9PSJzZWFyY2hUZXJtcyIpIHsKCQl0ZXh0
Ym94PWRvY3VtZW50LnNlYXJjaEpvdXJuYWwuc2VhcmNoVGVybXM7CgkJaWYgKHRl
eHRib3gudmFsdWU9PSJFbnRlciBUaXRsZSwgS2V5d29yZHMsIEF1dGhvcnMsIG9y
IERPSSIpIHRleHRib3gudmFsdWU9IiI7CgkJZWxzZSBpZiAodGV4dGJveC52YWx1
ZT09IiIpIHRleHRib3gudmFsdWU9IkVudGVyIFRpdGxlLCBLZXl3b3JkcywgQXV0
aG9ycywgb3IgRE9JIjsKCX0KCWVsc2UgaWYgKHRleHRib3g9PSJxdWlja0xpbmtW
b2x1bWUiKSB7CgkJdGV4dGJveD1kb2N1bWVudC5jaXRhdGlvbkp1bXAucXVpY2tM
aW5rVm9sdW1lOwoJCWlmICh0ZXh0Ym94LnZhbHVlPT0iVm9sICMiKSB0ZXh0Ym94
LnZhbHVlPSIiOwoJCWVsc2UgaWYgKHRleHRib3gudmFsdWU9PSIiKSB0ZXh0Ym94
LnZhbHVlPSJWb2wgIyI7Cgl9CgllbHNlIGlmICh0ZXh0Ym94PT0icXVpY2tMaW5r
UGFnZSIpIHsKCQl0ZXh0Ym94PWRvY3VtZW50LmNpdGF0aW9uSnVtcC5xdWlja0xp
bmtQYWdlOwoJCWlmICh0ZXh0Ym94LnZhbHVlPT0iUGFnZSAjIikgdGV4dGJveC52
YWx1ZT0iIjsKCQllbHNlIGlmICh0ZXh0Ym94LnZhbHVlPT0iIikgdGV4dGJveC52
YWx1ZT0iUGFnZSAjIjsKCX0KCWVsc2UgaWYgKHRleHRib3g9PSJkb2kiKSB7CgkJ
dGV4dGJveD1kb2N1bWVudC5jaXRhdGlvbkp1bXAuZG9pOwoJCWlmICh0ZXh0Ym94
LnZhbHVlPT0iIikgdGV4dGJveC52YWx1ZT0iMTAuMTAyMS8iOwoJfQoJZWxzZSBp
ZiAodGV4dGJveD09InVzZXJOYW1lIikgewoJCXRleHRib3g9ZG9jdW1lbnQuc2ln
bkluLnVzZXJOYW1lOwoJCWlmICh0ZXh0Ym94LnZhbHVlPT0iVXNlcm5hbWUiKSB0
ZXh0Ym94LnZhbHVlPSIiOwoJCWVsc2UgaWYgKHRleHRib3gudmFsdWU9PSIiKSB0
ZXh0Ym94LnZhbHVlPSJVc2VybmFtZSI7Cgl9CgllbHNlIGlmICh0ZXh0Ym94PT0i
cGFzc3dvcmQiKSB7CgkJdGV4dGJveD1kb2N1bWVudC5zaWduSW4ucGFzc3dvcmQ7
CgkJaWYgKHRleHRib3gudmFsdWU9PSJQYXNzd29yZCIpIHRleHRib3gudmFsdWU9
IiI7CgkJZWxzZSBpZiAodGV4dGJveC52YWx1ZT09IiIpIHRleHRib3gudmFsdWU9
IlBhc3N3b3JkIjsKCX0KfQoKLy8gYXR5cG9uIGNoYW5nZQpmdW5jdGlvbiBxdWlj
a0xpbmtTdWJtaXQoKSB7CiAgICB2YXIgb2sgPSB0cnVlOwogICAgaWYgKGRvY3Vt
ZW50LmNpdGF0aW9uSnVtcC5kb2kudmFsdWUgPT0gIjEwLjEwMjEvIikgewogICAg
ICAgIGlmIChkb2N1bWVudC5jaXRhdGlvbkp1bXAucXVpY2tMaW5rSm91cm5hbC52
YWx1ZSA9PSAiIikgewogICAgICAgICAgICBvayA9IGZhbHNlOwogICAgICAgICAg
ICBhbGVydCgiUGxlYXNlIHNwZWNpZnkgRE9JIG9yIGEgam91cm5hbCIpOwogICAg
ICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQuY2l0YXRpb25KdW1wLnF1aWNrTGlua1Zv
bHVtZS52YWx1ZSA9PSAiVm9sICMiKSB7CiAgICAgICAgICAgIG9rID0gZmFsc2U7
CiAgICAgICAgICAgIGFsZXJ0KCJQbGVhc2Ugc3BlY2lmeSBET0kgb3Igdm9sdW1l
IGFuZCBwYWdlIG51bWJlcnMiKTsKICAgICAgICB9IGVsc2UgaWYgKGRvY3VtZW50
LmNpdGF0aW9uSnVtcC5xdWlja0xpbmtQYWdlLnZhbHVlID09ICJQYWdlICMiKSB7
CiAgICAgICAgICAgIG9rID0gZmFsc2U7CiAgICAgICAgICAgIGFsZXJ0KCJQbGVh
c2Ugc3BlY2lmeSBET0kgb3Igdm9sdW1lIGFuZCBwYWdlIG51bWJlcnMiKTsKICAg
ICAgICB9CiAgICAgICAgaWYgKG9rKQogICAgICAgICAgICBkb2N1bWVudC5jaXRh
dGlvbkp1bXAuZG9pLnZhbHVlID0gIiI7CiAgICB9CiAgICBpZiAob2spIHsKLy8g
ICAgICAgIGRvY3VtZW50LmZvcm1zWydjaXRhdGlvbkp1bXAnXS5zdWJtaXQoKTsK
ICAgIH0KICAgIHJldHVybiBvazsKfQoKLy8gRm9yIHNob3dpbmcvaGlkaW5nIHRo
ZSBKb3VybmFsIExpc3QgbWVudSBsYXllcgpmdW5jdGlvbiB0b2dnbGVBWigpIHsK
CS8vIGZpcnN0IHRlc3QgZm9yIEV4cGxvcmVyIDYgYW5kIGJlbG93IHRvIGZpeCBh
IGJ1ZyBpbiB0aGF0IGNyYXAgYnJvd3NlcgoJdmFyIHZlcnNpb249MDsKCXZhciBu
ZWVkZml4PTA7CglpZiAoUHJvdG90eXBlLkJyb3dzZXIuSUUpIHsKCQlpZiAobmF2
aWdhdG9yLmFwcFZlcnNpb24uaW5kZXhPZigiTVNJRSIpIT0tMSkgewoJCQl2YXIg
dGVtcD1uYXZpZ2F0b3IuYXBwVmVyc2lvbi5zcGxpdCgiTVNJRSIpOwoJCQl2YXIg
dmVyc2lvbj1wYXJzZUZsb2F0KHRlbXBbMV0pOwoJCX0KCQlpZiAodmVyc2lvbiA8
IDcpIG5lZWRmaXg9MTsKCX0KCgkvLyBzaG93IG9yIGhpZGUgdGhlIFB1YnMgU2Vs
ZWN0IGxheWVyCgl2YXIgYm94PSQoJ3B1YnNTZWxlY3RvcicpOwoJdmFyIGJnPSBu
ZXcgQXJyYXkoKTsKCWJnWzBdPSQoJ2hlYWRlcicpOwoJYmdbMV09JCgnbWFpbkJv
ZHknKTsKCWJnWzJdPSQoJ3BhZ2VGb290ZXItd3JhcCcpOwoJdmFyIG49MDsKCglp
ZiAoYm94LnN0eWxlKSB7CgkJaWYgKGJveC5zdHlsZS5kaXNwbGF5IT0nJykgewoJ
CQlpZiAobmVlZGZpeD09MSkgcHVic1NlbGVjdElFZml4KCdoaWRlJyk7CgoJCQl3
aGlsZSAoYmdbbl0pIHsKCQkJCWJnW25dLmNoYW5nZU9wYWNpdHk9IjAuNTAiOwoJ
CQkJYmdbbl0uc3R5bGUuS0hUTUxPcGFjaXR5PSIwLjUwIjsKCQkJCWJnW25dLnN0
eWxlLm9wYWNpdHk9IjAuNTAiOwoJCQkJbisrOwoJCQl9CgkJCUVmZmVjdC5BcHBl
YXIoYm94LCB7ZHVyYXRpb246MC41fSk7CgkJfQoJCWVsc2UgewoJCQlpZiAobmVl
ZGZpeD09MSkgcHVic1NlbGVjdElFZml4KCdzaG93Jyk7CgoJCQl3aGlsZSAoYmdb
bl0pIHsKCQkJCWJnW25dLnN0eWxlLk1vek9wYWNpdHk9IjEiOwoJCQkJYmdbbl0u
c3R5bGUuS0hUTUxPcGFjaXR5PSIxIjsKCQkJCWJnW25dLnN0eWxlLm9wYWNpdHk9
IjEiOwoJCQkJbisrOwoJCQl9CgkJCUVmZmVjdC5GYWRlKGJveCwge2R1cmF0aW9u
OjAuNX0pOwoJCX0KCX0KfQovLyBjb21wYW5pb24gc2NyaXB0IHRvIG1ha2UgcHVi
c1NlbGVjdCgpIHdvcmsgaW4gRXhwbG9yZXIgNiBhbmQgYmVsb3cKLy8gd2l0aG91
dCBoYXZpbmcgdGhlIGZvcm0gc2VsZWN0IGJveGVzIGFwcGVhciB0aHJvdWdoIHRo
ZSBQdWJzIFNlbGVjdCBsYXllcgpmdW5jdGlvbiBwdWJzU2VsZWN0SUVmaXgoaGlk
ZU9yU2hvdykgewoJLy8gZm9yIEJyb3dzZSBCeSBJc3N1ZSBib3hlcyBvbiBqb3Vy
bmFsLXNwZWNpZmljIHBhZ2VzCglpZiAoJCgnaW5EZWNhZGUnKSkgewoJCXZhciBo
aWRlQnJvd3NlMT0kKCdpbkRlY2FkZScpOwoJCXZhciBoaWRlQnJvd3NlMj0kKCdp
blZvbHVtZScpOwoJCXZhciBoaWRlQnJvd3NlMz0kKCdpbklzc3VlJyk7CgkJaWYg
KGhpZGVPclNob3c9PSJoaWRlIikgewoJCQloaWRlQnJvd3NlMS5zdHlsZS52aXNp
YmlsaXR5PSJoaWRkZW4iOwoJCQloaWRlQnJvd3NlMi5zdHlsZS52aXNpYmlsaXR5
PSJoaWRkZW4iOwoJCQloaWRlQnJvd3NlMy5zdHlsZS52aXNpYmlsaXR5PSJoaWRk
ZW4iOwoJCX0KCQllbHNlIHsKCQkJaGlkZUJyb3dzZTEuc3R5bGUudmlzaWJpbGl0
eT0idmlzaWJsZSI7CgkJCWhpZGVCcm93c2UyLnN0eWxlLnZpc2liaWxpdHk9InZp
c2libGUiOwoJCQloaWRlQnJvd3NlMy5zdHlsZS52aXNpYmlsaXR5PSJ2aXNpYmxl
IjsKCQl9Cgl9CgkvLyBmb3Igam91cm5hbCBzZWxlY3RvciBvbiBBUlJDIHBhZ2Vz
CglpZiAoJCgnYXJyY0pvdXJuYWxJbmZvJykpIHsKCQl2YXIgYXJyYz0kKCdhcnJj
Sm91cm5hbEluZm8nKTsKCQlpZiAoaGlkZU9yU2hvdz09ImhpZGUiKSB7CgkJCWFy
cmMuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIjsKCQl9CgkJZWxzZSBhcnJjLnN0
eWxlLnZpc2liaWxpdHk9InZpc2libGUiOwoJfQoJLy8gZm9yIGFjY291bnQgc2Vs
ZWN0b3Igb24gTGliLiBBZG1pbi4gcGFnZXMKCWlmICgkKCdsaWJBY2NvdW50Jykp
IHsKCQl2YXIgYWNjb3VudD0kKCdsaWJBY2NvdW50Jyk7CgkJaWYgKGhpZGVPclNo
b3c9PSJoaWRlIikgewoJCQlhY2NvdW50LnN0eWxlLnZpc2liaWxpdHk9ImhpZGRl
biI7CgkJfQoJCWVsc2UgYWNjb3VudC5zdHlsZS52aXNpYmlsaXR5PSJ2aXNpYmxl
IjsKCX0KCS8vIGZvciBtb250aC95ZWFyIG5hdmlnYXRpb24gb24gT25saW5lIE5l
d3MgQXJjaGl2ZSBhbmQgbmV3c2xldHRlcnMKCWlmICgkKCdtb250aFllYXJOYXYn
KSkgewoJCXZhciBhY2NvdW50PSQoJ21vbnRoWWVhck5hdicpOwoJCWlmIChoaWRl
T3JTaG93PT0iaGlkZSIpIHsKCQkJYWNjb3VudC5zdHlsZS52aXNpYmlsaXR5PSJo
aWRkZW4iOwoJCX0KCQllbHNlIGFjY291bnQuc3R5bGUudmlzaWJpbGl0eT0idmlz
aWJsZSI7Cgl9Cn0KCi8vIEFub3RoZXIgcGFpciBvZiBzY3JpcHRzIHRvIGZpeCBJ
RSdzIHByb2JsZW0gd2l0aCBzZWxlY3QgYm94ZXMgc2hvd2luZyB0aHJvdWdoIGxh
eWVycwovLyBUaGlzIG9uZSBpcyBmb3IgdGhlIEF1dGhvciBJbmRleCBwYWdlCmZ1
bmN0aW9uIGZpeEFJNElFKHN0YXRlKSB7CglpZiAoUHJvdG90eXBlLkJyb3dzZXIu
SUUpIHsKCQlpZiAobmF2aWdhdG9yLmFwcFZlcnNpb24uaW5kZXhPZigiTVNJRSIp
IT0tMSkgewoJCQl2YXIgdGVtcD1uYXZpZ2F0b3IuYXBwVmVyc2lvbi5zcGxpdCgi
TVNJRSIpOwoJCQl2YXIgdmVyc2lvbj1wYXJzZUZsb2F0KHRlbXBbMV0pOwoJCX0K
CQlpZiAodmVyc2lvbiA8IDcpIHsKCQkJaWYgKCQoJ2FpVm9sSnVtcCcpKSB7CgkJ
CQl2YXIgZm9ybT0kKCdhaVZvbEp1bXAnKTsKCQkJCXZhciBzZWxlY3QxPWZvcm0u
Z2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NlbGVjdCcpWzBdLnN0eWxlOwoJCQkJdmFy
IHNlbGVjdDI9Zm9ybS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0JylbMV0u
c3R5bGU7CgkJCQlpZiAoc3RhdGU9PSJvbiIpIHsKCQkJCQlzZWxlY3QxLnZpc2li
aWxpdHk9ImhpZGRlbiI7CgkJCQkJc2VsZWN0Mi52aXNpYmlsaXR5PSJoaWRkZW4i
OwoJCQkJfQoJCQkJZWxzZSB7CgkJCQkJc2VsZWN0MS52aXNpYmlsaXR5PSJ2aXNp
YmxlIjsKCQkJCQlzZWxlY3QyLnZpc2liaWxpdHk9InZpc2libGUiOwoJCQkJfQoJ
CQl9CgkJfQoJfQp9Ci8vIFRoaXMgb25lIGlzIG9ubHkgZm9yIHRoZSBPbmxpbmUg
TmV3cyBBcmNoaXZlCmZ1bmN0aW9uIGZpeEFyY2hpdmU0SUUoc3RhdGUpIHsKCWlm
IChQcm90b3R5cGUuQnJvd3Nlci5JRSkgewoJCWlmIChuYXZpZ2F0b3IuYXBwVmVy
c2lvbi5pbmRleE9mKCJNU0lFIikhPS0xKSB7CgkJCXZhciB0ZW1wPW5hdmlnYXRv
ci5hcHBWZXJzaW9uLnNwbGl0KCJNU0lFIik7CgkJCXZhciB2ZXJzaW9uPXBhcnNl
RmxvYXQodGVtcFsxXSk7CgkJfQoJCWlmICh2ZXJzaW9uIDwgNykgewoJCQlpZiAo
JCgnbmV3c0FyY2hpdmVOYXYnKSkgewoJCQkJdmFyIGZvcm09JCgnbmV3c0FyY2hp
dmVOYXYnKTsKCQkJCXZhciBzZWxlY3QxPWZvcm0uZ2V0RWxlbWVudHNCeVRhZ05h
bWUoJ3NlbGVjdCcpWzBdLnN0eWxlOwoJCQkJdmFyIHNlbGVjdDI9Zm9ybS5nZXRF
bGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0JylbMV0uc3R5bGU7CgkJCQlpZiAoc3Rh
dGU9PSJvbiIpIHsKCQkJCQlzZWxlY3QxLnZpc2liaWxpdHk9ImhpZGRlbiI7CgkJ
CQkJc2VsZWN0Mi52aXNpYmlsaXR5PSJoaWRkZW4iOwoJCQkJfQoJCQkJZWxzZSB7
CgkJCQkJc2VsZWN0MS52aXNpYmlsaXR5PSJ2aXNpYmxlIjsKCQkJCQlzZWxlY3Qy
LnZpc2liaWxpdHk9InZpc2libGUiOwoJCQkJfQoJCQl9CgkJfQoJfQp9CgovLyBG
b3IgdG9nZ2xpbmcgdGhlIGFydGljbGUgbGlzdHMgb24gdGhlIGpvdXJuYWwgaG9t
ZSBwYWdlcwpmdW5jdGlvbiB0b2dnbGVBcnRpY2xlTGlzdChmb2N1cykgewoJdmFy
IGZvY3VzTGlzdD1mb2N1cysiQXJ0aWNsZXMiOwoJdmFyIGZvY3VzVGFiPWZvY3Vz
KyJUYWIiOwoKCXZhciBsaXN0ID0gbmV3IEFycmF5KCQoJ2p1c3RBY2NlcHRlZEFy
dGljbGVzJyksJCgnanVzdFB1Ymxpc2hlZEFydGljbGVzJyksJCgnY3VycmVudElz
c3VlQXJ0aWNsZXMnKSwkKCdtb3N0UmVhZEFydGljbGVzJyksJCgnbW9zdENpdGVk
QXJ0aWNsZXMnKSk7Cgl2YXIgdGFiID0gbmV3IEFycmF5KCQoJ2p1c3RBY2NlcHRl
ZFRhYicpLCQoJ2p1c3RQdWJsaXNoZWRUYWInKSwkKCdjdXJyZW50SXNzdWVUYWIn
KSwkKCdtb3N0UmVhZFRhYicpLCQoJ21vc3RDaXRlZFRhYicpKTsKCWZvY3VzTGlz
dD0kKGZvY3VzTGlzdCk7Cglmb2N1c1RhYj0kKGZvY3VzVGFiKTsKCgkvLyBmaXJz
dCwgaGlkZSBhbGwgbGlzdHMKCWxpc3RbMF0uc3R5bGUuZGlzcGxheT0ibm9uZSI7
CglsaXN0WzFdLnN0eWxlLmRpc3BsYXk9Im5vbmUiOwoJbGlzdFsyXS5zdHlsZS5k
aXNwbGF5PSJub25lIjsKCWxpc3RbM10uc3R5bGUuZGlzcGxheT0ibm9uZSI7Cgls
aXN0WzRdLnN0eWxlLmRpc3BsYXk9Im5vbmUiOwoKCS8vIHNlY29uZCwgc2hvdyB0
aGUgb25lIHRoYXQgd2FzIGNsaWNrZWQKCWZvY3VzTGlzdC5zdHlsZS5kaXNwbGF5
PSJibG9jayI7CgoJLy8gdGhpcmQsIHB1dCBhbGwgdGhlIHRhYiBiYWNrZ3JvdW5k
cyBpbnRvIHRoZSBuZXV0cmFsIHBvc2l0aW9uOwoJdGFiWzBdLnN0eWxlLmJhY2tn
cm91bmRQb3NpdGlvbj0iLTRweCAtNHB4IjsKCXRhYlsxXS5zdHlsZS5iYWNrZ3Jv
dW5kUG9zaXRpb249Ii05OXB4IC00cHgiOwoJdGFiWzJdLnN0eWxlLmJhY2tncm91
bmRQb3NpdGlvbj0iLTE5NHB4IC00cHgiOwoJdGFiWzNdLnN0eWxlLmJhY2tncm91
bmRQb3NpdGlvbj0iLTI4OXB4IC00cHgiOwoJdGFiWzRdLnN0eWxlLmJhY2tncm91
bmRQb3NpdGlvbj0iLTM4NHB4IC00cHgiOwoKCS8vIGZvdXJ0aCwgcHV0IHRoZSBm
b2N1c2VkIHRhYiBiYWNrZ3JvdW5kIGludG8gdGhlIGFjdGl2ZSBwb3NpdGlvbgoJ
aWYgKGZvY3VzPT0ianVzdEFjY2VwdGVkIikgewoJCWZvY3VzVGFiLnN0eWxlLmJh
Y2tncm91bmRQb3NpdGlvbj0iLTRweCAtMjlweCI7Cgl9CgllbHNlIGlmIChmb2N1
cz09Imp1c3RQdWJsaXNoZWQiKSB7CgkJZm9jdXNUYWIuc3R5bGUuYmFja2dyb3Vu
ZFBvc2l0aW9uPSItOTlweCAtMjlweCI7Cgl9CgllbHNlIGlmIChmb2N1cz09ImN1
cnJlbnRJc3N1ZSIpIHsKCQlmb2N1c1RhYi5zdHlsZS5iYWNrZ3JvdW5kUG9zaXRp
b249Ii0xOTRweCAtMjlweCI7Cgl9CgllbHNlIGlmIChmb2N1cz09Im1vc3RSZWFk
IikgewoJCWZvY3VzVGFiLnN0eWxlLmJhY2tncm91bmRQb3NpdGlvbj0iLTI4OXB4
IC0yOXB4IjsKCX0KCWVsc2UgewoJCWZvY3VzVGFiLnN0eWxlLmJhY2tncm91bmRQ
b3NpdGlvbj0iLTM4NHB4IC0yOXB4IjsKCX0KCS8vYWRkZWQgYnkgQXR5cG9uCglz
ZXRSYW5nZShmb2N1c0xpc3QpOwoJcHJlcGFyZVRodW1iRnJvbVRhYihmb2N1c0xp
c3QpOwp9CgovLyBGb3Igc2VsZWN0aW5nL2Rlc2VsZWN0aW5nIGFydGljbGVzCi8v
IHBhcmFtIGNoYW5nZWQgYnkgQVR5cG9uCmZ1bmN0aW9uIHNlbGVjdERlc2VsZWN0
KGJveCkgewoJdmFyIGZvcm09Ym94LmZvcm07Cgl2YXIgbj0wOwoJdmFyIGNoZWNr
ZWQ9MDsKCXZhciBvbmVPclR3bz1mb3JtLnNlbGVjdEFsbC5sZW5ndGg7CgoJaWYg
KGJveC5jaGVja2VkPT10cnVlKSB7CgkJaWYgKGZvcm0uZG9pWzFdKSB7CgkJCXdo
aWxlIChmb3JtLmRvaVtuXSkgewoJCQkJZm9ybS5kb2lbbl0uY2hlY2tlZD10cnVl
OwoJCQkJbisrOwoJCQl9CgkJCWlmIChvbmVPclR3bz09MikgewoJCQkJZm9ybS5z
ZWxlY3RBbGxbMF0uY2hlY2tlZD10cnVlOwoJCQkJZm9ybS5zZWxlY3RBbGxbMV0u
Y2hlY2tlZD10cnVlOwoJCQl9CgkJCWVsc2UgewoJCQkJZm9ybS5zZWxlY3RBbGwu
Y2hlY2tlZD10cnVlOwoJCQl9CgkJfQoJCWVsc2UgZm9ybS5kb2kuY2hlY2tlZD10
cnVlOwoJfQoJZWxzZSB7CgkJaWYgKGZvcm0uZG9pWzFdKSB7CgkJCXdoaWxlIChm
b3JtLmRvaVtuXSkgewoJCQkJZm9ybS5kb2lbbl0uY2hlY2tlZD1mYWxzZTsKCQkJ
CW4rKzsKCQkJfQoJCQlpZiAob25lT3JUd289PTIpIHsKCQkJCWZvcm0uc2VsZWN0
QWxsWzBdLmNoZWNrZWQ9ZmFsc2U7CgkJCQlmb3JtLnNlbGVjdEFsbFsxXS5jaGVj
a2VkPWZhbHNlOwoJCQl9CgkJCWVsc2UgewoJCQkJZm9ybS5zZWxlY3RBbGwuY2hl
Y2tlZD1mYWxzZTsKCQkJfQoJCX0KCQllbHNlIGZvcm0uZG9pLmNoZWNrZWQ9ZmFs
c2U7Cgl9Cn0KLy9mdW5jdGlvbiBhZGRlZCBieSBBVHlwb24KZnVuY3Rpb24gc3Vi
bWl0QXJ0aWNsZXMoYW5FbGVtZW50LCBhY3Rpb24pIHsKICAgIHZhciBhRm9ybSA9
ICQoYW5FbGVtZW50KS51cCgnZm9ybScpOwogICAgc3VibWl0TXVsdGlBcnRpY2xl
cyhhRm9ybSwgYWN0aW9uLCBmYWxzZSk7Cn0KLy8gRm9yIGNoZWNraW5nIGlmIGFs
bCBvZiB0aGUgY2hlY2tib3hlcyBhcmUgY2hlY2tlZCBvciBub3QKLy9wYXJhbSBj
aGFuZ2UsIEFUeXBvbiBjaGFuZ2UKZnVuY3Rpb24gZXZhbEFsbChib3gpIHsKICAg
IHZhciBmb3JtPWJveC5mb3JtOy8vYXR5cG9uIGNoYW5nZQoJdmFyIG1heD1mb3Jt
LmRvaS5sZW5ndGg7IC8vIGF0eXBvbiBjaGFuZ2UKCXZhciBvbmVPclR3bz1mb3Jt
LnNlbGVjdEFsbC5sZW5ndGg7Cgl2YXIgY2hlY2tlZD0wOwoJZm9yICh2YXIgY291
bnQ9MDsgY291bnQgPCBtYXg7IGNvdW50KyspIHsKCQlpZiAoZXZhbCgiZm9ybS5k
b2lbIiArIGNvdW50ICsgIl0uY2hlY2tlZCIpID09IHRydWUpIHsKCQkJY2hlY2tl
ZCsrOwoJCX0KCX0KCWlmIChjaGVja2VkPT1tYXgpIHsKCQlpZiAob25lT3JUd289
PTIpIHsKCQkJZm9ybS5zZWxlY3RBbGxbMF0uY2hlY2tlZD10cnVlOwoJCQlmb3Jt
LnNlbGVjdEFsbFsxXS5jaGVja2VkPXRydWU7CgkJfQoJCWVsc2UgewoJCQlmb3Jt
LnNlbGVjdEFsbC5jaGVja2VkPXRydWU7CgkJfQoJfQoJZWxzZSB7CgkJaWYgKG9u
ZU9yVHdvPT0yKSB7CgkJCWZvcm0uc2VsZWN0QWxsWzBdLmNoZWNrZWQ9ZmFsc2U7
CgkJCWZvcm0uc2VsZWN0QWxsWzFdLmNoZWNrZWQ9ZmFsc2U7CgkJfQoJCWVsc2Ug
ewoJCQlmb3JtLnNlbGVjdEFsbC5jaGVja2VkPWZhbHNlOwoJCX0KCX0KfQoKLy8g
Rm9yIHNob3dpbmcgdGhlIGZpZ3VyZSB0aHVtYm5haWxzCmZ1bmN0aW9uIG9wZW5U
cmF5KGZpZywgZG9pKSB7Cgl2YXIgaGFuZGxlMT1maWcucGFyZW50Tm9kZS5nZXRF
bGVtZW50c0J5VGFnTmFtZSgnYScpWzBdOwoJdmFyIGhhbmRsZTI9ZmlnLnBhcmVu
dE5vZGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2EnKVsxXTsKCXZhciB0cmF5SGFu
ZGxlPWZpZy5wYXJlbnROb2RlOyAvLy50cmF5SGFuZGxlCgl2YXIgZmlnQm94PXRy
YXlIYW5kbGUucGFyZW50Tm9kZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2Jylb
MF07IC8vLmZpZ3VyZUJveAoJdmFyIGZpZ3VyZU5hdj1maWcucGFyZW50Tm9kZS5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2JylbMF07IC8vLmZpZ3VyZU5hdgoKICAg
IGlmIChoYW5kbGUyLnN0eWxlLmRpc3BsYXk9PSJub25lIikgewogICAgICAgIC8v
YXR5cG9uOiBnZXQgaW1hZ2VzCiAgICAgICAgdmFyIGRvaUZpZ3VyZSA9IGdldERv
aUZpZ3VyZXMoZG9pKTsKICAgICAgICBpZiAoZG9pRmlndXJlKXsKICAgICAgICAg
ICAgdmFyIGltZ1RhZyA9IGZpZ0JveC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2
JylbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2ltZycpWzBdOwogICAgICAgICAg
ICB1cGRhdGVGaWdJbWcoZG9pRmlndXJlLCAwLCBpbWdUYWcpOwogICAgICAgICAg
ICAvL3NldHVwIG5leHQgYW5kIHByZXYKICAgICAgICAgICAgc2V0dXBOZXh0UHJl
dihmaWd1cmVOYXYsIGRvaUZpZ3VyZSwgMCk7CiAgICAgICAgfWVsc2V7CiAgICAg
ICAgICAgIGFsZXJ0KCJUaGlzIGFydGljbGUgaGFzIG5vIGltYWdlIikKICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgIH0KCQlFZmZlY3QuQXBwZWFyKGZpZ0JveCwg
e2R1cmF0aW9uOiAwLjV9KTsKCQlFZmZlY3QuQXBwZWFyKGZpZ3VyZU5hdiwge2R1
cmF0aW9uOiAwLjV9KTsKCQloYW5kbGUxLnN0eWxlLmRpc3BsYXk9Im5vbmUiOwoJ
CUVmZmVjdC5BcHBlYXIoaGFuZGxlMiwge2R1cmF0aW9uOiAwLjV9KTsKCQl0cmF5
SGFuZGxlLnN0eWxlLmJhY2tncm91bmQ9IiNlNGUyZTIiOwoKCQlpZiAoZmlnLnBh
cmVudE5vZGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NwYW4nKVsxXSkgewoJCQl2
YXIgd2VvPWZpZy5wYXJlbnROb2RlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzcGFu
JylbMV07CgkJCUVmZmVjdC5BcHBlYXIod2VvLCB7ZHVyYXRpb246IDAuNX0pOwoJ
CX0KCX0KCWVsc2UgewoJCUVmZmVjdC5GYWRlKGZpZ0JveCwge2R1cmF0aW9uOiAw
LjV9KTsKCQlFZmZlY3QuRmFkZShmaWd1cmVOYXYsIHtkdXJhdGlvbjogMC41fSk7
CgkJRWZmZWN0LkFwcGVhcihoYW5kbGUxLCB7ZHVyYXRpb246IDAuNX0pOwoJCWhh
bmRsZTIuc3R5bGUuZGlzcGxheT0ibm9uZSI7CgkJdHJheUhhbmRsZS5zdHlsZS5i
YWNrZ3JvdW5kPSIjZmZmIHVybCgvdGVtcGxhdGVzL2pzcC9fc3R5bGUyL19hY2hz
L2ltYWdlcy9oYW5kbGUtYmcuZ2lmKSBuby1yZXBlYXQgYm90dG9tIHJpZ2h0IjsK
CgkJaWYgKGZpZy5wYXJlbnROb2RlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzcGFu
JylbMV0pIHsKCQkJdmFyIHdlbz1maWcucGFyZW50Tm9kZS5nZXRFbGVtZW50c0J5
VGFnTmFtZSgnc3BhbicpWzFdOwoJCQlFZmZlY3QuRmFkZSh3ZW8sIHtkdXJhdGlv
bjogMC41fSk7CgkJfQoJfQp9CgpmdW5jdGlvbiB1cGRhdGVGaWdJbWcoZG9pRmln
dXJlLCBpbmRleCwgaW1nVGFnKSB7CiAgICB2YXIgaXNNZWRpdW0gPSBpbmRleD09
IDAgJiYgZG9pRmlndXJlLmlzVG9jRmlndXJlOwogICAgaW1nVGFnLnNyYyA9IGRv
aUZpZ3VyZS5wYXRoICsgJy9pbWFnZXMvJyArIChpc01lZGl1bSA/ICdtZWRpdW0v
JyA6ICdzbWFsbC8nKSArIGRvaUZpZ3VyZS5pbWFnZXNbaW5kZXhdOwogICAgJChp
bWdUYWcpW2lzTWVkaXVtID8gJ2FkZENsYXNzTmFtZScgOiAncmVtb3ZlQ2xhc3NO
YW1lJ10oJ3RvY0dyYXBoaWMnKTsKfQoKLy8gRm9yIHNob3dpbmcgbXVsdGlwbGUg
ZmlndXJlIHRodW1ibmFpbHMKLy9wYXJhbSBjaGFuZ2VkIGJ5IEF0eXBvbgpmdW5j
dGlvbiBvcGVuTXVsdGlUcmF5cyhidXR0b24pIHsKICAgIGlmICghYnV0dG9uKSBy
ZXR1cm47CiAgICB2YXIgZm9ybSA9ICQoYnV0dG9uKS51cCgnZm9ybScpOwogICAg
dmFyIGRvaUlucHV0cyA9IGZvcm0uZ2V0SW5wdXRzKCdjaGVja2JveCcsJ2RvaScp
OwogICAgdmFyIG1heD1kb2lJbnB1dHMubGVuZ3RoOwoJdmFyIHRyYXksIGhhbmRs
ZTEsIGhhbmRsZTIsIHRyYXlIYW5kbGUsIGZpZ0JveCwgbmF2LCBzdGF0ZSwgaW1n
LCBkb2ksIGRvaUZpZ3VyZTsKCWJ1dHRvbj1idXR0b24uc3R5bGU7CgogICAgLy9k
ZXRlcm1pbmUgc3RhdGUgb2YgdGhlIGJ1dHRvbiAoc2hvdyBhbGwgb3IgaGlkZSBh
bGwpCglpZiAoYnV0dG9uLmJhY2tncm91bmRQb3NpdGlvbiAhPSAiMHB4IC0xOHB4
Iikgc3RhdGU9MDsKCWVsc2Ugc3RhdGU9MTsKCgkvL2ZpbmRpbmcgdGhlIHRyYXlz
IGJ5IHRhcmdldGluZyB0aGUgYXJ0aWNsZSBjaGVja2JveGVzCglmb3IgKHZhciBj
b3VudD0wOyBjb3VudCA8IG1heDsgY291bnQrKykgewoJCS8vZGV0ZXJtaW5lIGlm
IHRoZSBhcnRpY2xlIGhhcyB0aHVtYm5haWxzCgkJaWYgKGRvaUlucHV0c1tjb3Vu
dF0ucGFyZW50Tm9kZS5wYXJlbnROb2RlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdh
JylbMF0pIHsKCQkJdHJheT1kb2lJbnB1dHNbY291bnRdLnBhcmVudE5vZGUucGFy
ZW50Tm9kZTsgLy8uZmlndXJlVHJheS13cmFwCgkJCWhhbmRsZTE9dHJheS5nZXRF
bGVtZW50c0J5VGFnTmFtZSgnYScpWzBdOwoJCQloYW5kbGUyPXRyYXkuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoJ2EnKVsxXTsKCQkJdHJheUhhbmRsZT1oYW5kbGUxLnBh
cmVudE5vZGU7IC8vLnRyYXlIYW5kbGUKCQkJZmlnQm94PXRyYXlIYW5kbGUucGFy
ZW50Tm9kZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2JylbMF07IC8vLmZpZ3Vy
ZUJveAoJCQluYXY9dHJheUhhbmRsZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2
JylbMF07Ly8uZmlndXJlTmF2CiAgICAgICAgICAgIC8vYXR5cG9uOiBnZXQgaW1h
Z2VzCiAgICAgICAgICAgIGltZyA9ICQoZmlnQm94KS5nZXRFbGVtZW50c0J5VGFn
TmFtZSgnZGl2JylbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2ltZycpWzBdOwog
ICAgICAgICAgICBkb2k9IGRvaUlucHV0c1tjb3VudF0udmFsdWU7CiAgICAgICAg
ICAgIGRvaUZpZ3VyZSA9IGdldERvaUZpZ3VyZXMoZG9pKTsKCiAgICAgICAgICAg
IGlmIChkb2lGaWd1cmUpIHsvLyBza2lwIGFydGljbGVzIHdpdGggbm8gaW1hZ2Vz
CiAgICAgICAgICAgICAgICBpZiAoc3RhdGU9PTApIHsKICAgICAgICAgICAgICAg
ICAgICB1cGRhdGVGaWdJbWcoZG9pRmlndXJlLCAwLCBpbWcpOwogICAgICAgICAg
ICAgICAgICAgIHNldHVwTmV4dFByZXYobmF2LCBkb2lGaWd1cmUsIDApOwogICAg
ICAgICAgICAgICAgICAgIGZpZ0JveC5zdHlsZS5kaXNwbGF5PSJibG9jayI7CiAg
ICAgICAgICAgICAgICAgICAgLy9uYXYncyBkaXNwbGF5IGxhb2dpYyBpcyBoYW5k
bGVkIGluIHNldHVwTmV4dFByZXYKLy8gICAgICAgICAgICAgICAgICAgIG5hdi5z
dHlsZS5kaXNwbGF5PSJibG9jayI7CiAgICAgICAgICAgICAgICAgICAgaGFuZGxl
MS5zdHlsZS5kaXNwbGF5PSJub25lIjsKICAgICAgICAgICAgICAgICAgICBoYW5k
bGUyLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjsKICAgICAgICAgICAgICAgICAgICB0
cmF5SGFuZGxlLnN0eWxlLmJhY2tncm91bmQ9IiNlNGUyZTIiOwogICAgICAgICAg
ICAgICAgICAgIGlmICh0cmF5SGFuZGxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdz
cGFuJylbMV0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHdlbz10cmF5
SGFuZGxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzcGFuJylbMV07CiAgICAgICAg
ICAgICAgICAgICAgICAgIHdlby5zdHlsZS5kaXNwbGF5PSJibG9jayI7CiAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5iYWNr
Z3JvdW5kUG9zaXRpb249IjBweCAtMThweCI7CiAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBmaWdCb3gu
c3R5bGUuZGlzcGxheT0ibm9uZSI7CiAgICAgICAgICAgICAgICAgICAgbmF2LnN0
eWxlLmRpc3BsYXk9Im5vbmUiOwogICAgICAgICAgICAgICAgICAgIGhhbmRsZTEu
c3R5bGUuZGlzcGxheT0iYmxvY2siOwogICAgICAgICAgICAgICAgICAgIGhhbmRs
ZTIuc3R5bGUuZGlzcGxheT0ibm9uZSI7CiAgICAgICAgICAgICAgICAgICAgdHJh
eUhhbmRsZS5zdHlsZS5iYWNrZ3JvdW5kPSJ1cmwoL3RlbXBsYXRlcy9qc3AvX3N0
eWxlMi9fYWNocy9pbWFnZXMvaGFuZGxlLWJnLmdpZikgbm8tcmVwZWF0IHJpZ2h0
IGJvdHRvbSI7CiAgICAgICAgICAgICAgICAgICAgaWYgKHRyYXlIYW5kbGUuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoJ3NwYW4nKVsxXSkgewogICAgICAgICAgICAgICAg
ICAgICAgICB2YXIgd2VvPXRyYXlIYW5kbGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
J3NwYW4nKVsxXTsKICAgICAgICAgICAgICAgICAgICAgICAgd2VvLnN0eWxlLmRp
c3BsYXk9Im5vbmUiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICBidXR0b24uYmFja2dyb3VuZFBvc2l0aW9uPSIwIDAiOwogICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CgoKLy8g
Rm9yIHRvZ2dsaW5nIHRoZSBKb3VybmFsIFZpZXcgb24gdGhlIFB1YnMgSG9tZSBQ
YWdlCmZ1bmN0aW9uIGNoYW5nZVZpZXcoaWQpIHsKCXZhciBzaG93PWlkKyJWaWV3
IjsKCXZhciBoaWdobGlnaHQ9aWQrIkxpbmsiOwoKCXZhciBibG9jazE9JCgnYXpW
aWV3Jyk7Cgl2YXIgYmxvY2syPSQoJ2NhdFZpZXcnKTsKCXNob3c9JChzaG93KTsK
CXZhciBsaW5rMT0kKCdhekxpbmsnKTsKCXZhciBsaW5rMj0kKCdjYXRMaW5rJyk7
CgloaWdobGlnaHQ9JChoaWdobGlnaHQpOwoKCS8vIGZpcnN0LCBoaWRlIGJvdGgg
dmlld3MKCWJsb2NrMS5zdHlsZS5kaXNwbGF5PSJub25lIjsKCWJsb2NrMi5zdHls
ZS5kaXNwbGF5PSJub25lIjsKCgkvLyBzZWNvbmQsIHNob3cgdGhlIG9uZSB0aGF0
IHdhcyBjbGlja2VkCglzaG93LnN0eWxlLmRpc3BsYXk9ImJsb2NrIjsKCgkvLyB0
aGlyZCwgc2V0IGJvdGggbGlua3MgdG8gdGhlIGRlZmF1bHQgYXBwZWFyYW5jZQoJ
bGluazEuc3R5bGUuZm9udFdlaWdodD0ibm9ybWFsIjsKCWxpbmsxLnN0eWxlLmJh
Y2tncm91bmQ9InRyYW5zcGFyZW50IjsKCWxpbmsxLnN0eWxlLmNvbG9yPSIjMzY5
IjsKCWxpbmsxLnN0eWxlLmJvcmRlcj0iMCI7CglsaW5rMi5zdHlsZS5mb250V2Vp
Z2h0PSJub3JtYWwiOwoJbGluazIuc3R5bGUuYmFja2dyb3VuZD0idHJhbnNwYXJl
bnQiOwoJbGluazIuc3R5bGUuY29sb3I9IiMzNjkiOwoJbGluazIuc3R5bGUuYm9y
ZGVyPSIwIjsKCgkvLyBmb3VydGgsIGhpZ2hsaWdodCB0aGUgbGluayB0aGF0IHdh
cyB1c2VkCgloaWdobGlnaHQuc3R5bGUuZm9udFdlaWdodD0iYm9sZCI7CgloaWdo
bGlnaHQuc3R5bGUuYmFja2dyb3VuZD0iI2VlZSI7CgloaWdobGlnaHQuc3R5bGUu
Y29sb3I9IiMwMDAiOwoJaGlnaGxpZ2h0LnN0eWxlLmJvcmRlcj0ic29saWQgMXB4
ICNjY2MiOwp9CgovLyBGb3IgZGlzcGxheWluZyBhIGpvdXJuYWwncyBoaXN0b3J5
IGxheWVyIG9uIEpvdXJuYWwgTGlzdApmdW5jdGlvbiBzaG93SGlzdG9yeShqb3Vy
bmFsKSB7Cglqb3VybmFsPWpvdXJuYWwucGFyZW50Tm9kZS5nZXRFbGVtZW50c0J5
VGFnTmFtZSgndWwnKVswXTsKCWpvdXJuYWw9am91cm5hbC5zdHlsZTsKCglpZiAo
am91cm5hbC5kaXNwbGF5IT0iYmxvY2siKSBqb3VybmFsLmRpc3BsYXk9ImJsb2Nr
IjsKCWVsc2Ugam91cm5hbC5kaXNwbGF5PSJub25lIjsKfQoKLy8gRm9yIHNob3dp
bmcvaGlkaW5nIHRoZSBqb3VybmFscyBpbiBDYXRlZ29yeSBWaWV3IG9uIFB1YnMg
SFAKZnVuY3Rpb24gc2hvd0pybmxzKGNhdCkgewoJdmFyIGluZGljYXRvcj1jYXQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NwYW4nKVswXTsKCWNhdD1jYXQucGFyZW50
Tm9kZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgndWwnKVswXTsKCWNhdD1jYXQuc3R5
bGU7CgoJaWYgKGNhdC5kaXNwbGF5IT0iYmxvY2siKSB7CgkJY2F0LmRpc3BsYXk9
ImJsb2NrIjsKCQlpbmRpY2F0b3IuaW5uZXJIVE1MPSItIjsKCX0KCWVsc2UgewoJ
CWNhdC5kaXNwbGF5PSJub25lIjsKCQlpbmRpY2F0b3IuaW5uZXJIVE1MPSIrIjsK
CX0KfQoKCi8vIEFydGljbGUgdGVtcGxhdGUgcHVsbGRvd24gbWVudXMKZnVuY3Rp
b24gc2hvd1B1bGxkb3duKGJ1dHRvbikgewoJdmFyIGJsb2NrPWJ1dHRvbi5wYXJl
bnROb2RlLnBhcmVudE5vZGU7Cgl2YXIgbGlzdD1idXR0b24ucGFyZW50Tm9kZS5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgndWwnKVswXTsKCWlmIChsaXN0LnN0eWxlLmRp
c3BsYXkgPT0gIm5vbmUiKSB7CgkJYmxvY2suc3R5bGUuekluZGV4PSI5MDAwIjsK
CQlFZmZlY3QuQmxpbmREb3duKGxpc3QsIHtkdXJhdGlvbjowLjN9KTsKCQlidXR0
b24uc3R5bGUuYmFja2dyb3VuZFBvc2l0aW9uPSIwIC0yMHB4IjsKCX0KCWVsc2Ug
ewoJCWJsb2NrLnN0eWxlLnpJbmRleD0iMSI7CgkJRWZmZWN0LkJsaW5kVXAobGlz
dCwge2R1cmF0aW9uOjAuM30pOwoJCWJ1dHRvbi5zdHlsZS5iYWNrZ3JvdW5kUG9z
aXRpb249IjAgMCI7Cgl9Cn0KZnVuY3Rpb24gaGlkZVB1bGxkb3duKGxpc3QpIHsK
CXZhciBsaXN0PWxpc3QucGFyZW50Tm9kZS5wYXJlbnROb2RlLnBhcmVudE5vZGUu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoJ2EnKVswXTsKCXNob3dQdWxsZG93bihsaXN0
KTsKfQoKLy8gQXJ0aWNsZSB0ZW1wbGF0ZSByZWZlcmVuY2Ugdmlld2VyCi8vIG5v
dGU6IG5lZWRlZCB0byB3ZWVkIG91dCBPcGVyYSBiZWNhdXNlIGl0IGRvZXNuJ3Qg
ZGlzcGxheSBwcm9wZXJseQpmdW5jdGlvbiBzaG93UmVmKHJlZiwgaWRzKSB7CiAg
ICBpbml0UmVmZXJlbmNlc0JhbG9vbihyZWYsIGlkcyk7ICAgICAvLyBBZGRlZCBi
eSBBdHlwb24KCXZhciBicm93c2VyTmFtZT1uYXZpZ2F0b3IuYXBwTmFtZTsKICAg
IGlmIChicm93c2VyTmFtZSAhPSAiT3BlcmEiIHx8IC9cZCsvLmV4ZWMobmF2aWdh
dG9yLmFwcFZlcnNpb24pWzBdID49IDkpIHsKCQl2YXIgYmFsbG9vbj0kKHJlZiku
bmV4dCgpLmRvd24oKTsKICAgICAgICBpZiAoYmFsbG9vbiAmJiBiYWxsb29uLnN0
eWxlKSB7IC8vIEF0eXBvbjogZGVncmFkZSBncmFjZWZ1bGx5IHdoZW4gYmFsb29u
IGlzIG5vdCBmb3VuZAogICAgICAgICAgICBpZiAoYmFsbG9vbi5zdHlsZS5kaXNw
bGF5ICE9ICJpbmxpbmUiKSB7CiAgICAgICAgICAgICAgICAvLyAgaGlkZVJlZiBp
cyBjYWxsaW5nIHNob3dSZWYgLSBuZWVkIHRvIGNoZWNrIGlmIGlzIGRpZmZlcmVu
dCBiZWZvcmUgaXMgaGlkZGVuCiAgICAgICAgICAgICAgICB2YXIgaXNEaWZmZXJl
bnQgPSAhd2luZG93Lm9wZW5lZFJlZmVyZW5jZUJhbGxvb24gfHwgd2luZG93Lm9w
ZW5lZFJlZmVyZW5jZUJhbGxvb24uaW5uZXJIVE1MICE9IGJhbGxvb24uaW5uZXJI
VE1MOwogICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5vcGVuZWRSZWZlcmVuY2VC
YWxsb29uKSBoaWRlUmVmKHdpbmRvdy5vcGVuZWRSZWZlcmVuY2VCYWxsb29uKTsK
ICAgICAgICAgICAgICAgIGlmIChpc0RpZmZlcmVudCkgewogICAgICAgICAgICAg
ICAgICAgIGJhbGxvb24uc3R5bGUuZGlzcGxheSA9ICJpbmxpbmUiOwogICAgICAg
ICAgICAgICAgICAgIHdpbmRvdy5vcGVuZWRSZWZlcmVuY2VCYWxsb29uID0gYmFs
bG9vbjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAg
ICBlbHNlIHsKICAgICAgICAgICAgICAgIGJhbGxvb24uc3R5bGUuZGlzcGxheT0i
bm9uZSI7CiAgICAgICAgICAgICAgICB3aW5kb3cub3BlbmVkUmVmZXJlbmNlQmFs
bG9vbiA9IGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICB9CiAgICB9CglwYXJlbnQubG9jYXRpb249IiNyZWZlcmVuY2VzIjsK
fQpmdW5jdGlvbiBoaWRlUmVmKHJlZikgewoJcmVmPSQocmVmKS51cCgnLnJlZicp
LnByZXZpb3VzKCk7CglzaG93UmVmKHJlZik7Cn0KCi8vIFNpZ24gSW4gUGFnZQpm
dW5jdGlvbiBwcmVSZWdNZXNzYWdlKHJlZ2lzdHJhdGlvblBhZ2UpIHsKCXZhciBy
PWNvbmZpcm0oIlRvIHJlZ2lzdGVyIG9uIHRoaXMgc2l0ZSwgeW91IG11c3QgY3Jl
YXRlIGFuIEFDUyBJRCBvbiB0aGUgQUNTIFNvY2lldHkgd2Vic2l0ZSAod3d3LmFj
cy5vcmcpLiBBZnRlciBjb21wbGV0aW5nIHlvdXIgcmVnaXN0cmF0aW9uLCB5b3Ug
d2lsbCBiZSByZXR1cm5lZCBiYWNrIHRvIHRoZSBwYWdlIHlvdSB3ZXJlIHZpZXdp
bmcgb24gdGhlIEFDUyBQdWJsaWNhdGlvbnMgd2Vic2l0ZSAocHVicy5hY3Mub3Jn
KS4iKTsKCQlpZiAocj09dHJ1ZSkgewoJCQlwYXJlbnQubG9jYXRpb249cmVnaXN0
cmF0aW9uUGFnZTsKCQl9CgllbHNlIHsKCQlyZXR1cm4gZmFsc2U7Cgl9Cn0KCi8v
IEFydGljbGUgdGVtcGxhdGUgcGVybWFsaW5rIHZpZXdlcgpmdW5jdGlvbiBzaG93
UGVybWFsaW5rKGRvaSkgewoJZG9pPWRvaS5wYXJlbnROb2RlLmdldEVsZW1lbnRz
QnlUYWdOYW1lKCdzcGFuJylbMF07CglpZiAoZG9pLnN0eWxlLmRpc3BsYXkgPT0g
Im5vbmUiKSB7CgkJRWZmZWN0LkJsaW5kRG93bihkb2ksIHtkdXJhdGlvbjogMC4z
fSk7Cgl9CgllbHNlIEVmZmVjdC5CbGluZFVwKGRvaSwge2R1cmF0aW9uOiAwLjN9
KTsKfQpmdW5jdGlvbiBoaWRlUGVybWFsaW5rKGRvaSkgewoJZG9pPWRvaS5wYXJl
bnROb2RlLnBhcmVudE5vZGU7CglzaG93UGVybWFsaW5rKGRvaSk7Cn0KCi8vIEFy
dGljbGUgdGVtcGxhdGUgZmlndXJlIHZpZXdlcgpmdW5jdGlvbiBzaG93RmlndXJl
cyhlKSB7CgkvL2FkZGVkIGJ5IEF0eXBvbgogICAgdmFyIG49MDsKICAgIGlmICgh
ZSkJdmFyIGUgPSB3aW5kb3cuZXZlbnQ7CiAgICBpbml0Vmlld2VyKGUpOyAgLyog
QXR5cG9uIGNoYW5nZSAqLwoJdmFyIHZpZXdlcj0kKCdmaWd1cmVWaWV3ZXItd3Jh
cCcpOwogICAgaWYgKCF2aWV3ZXIpIHJldHVybjsgLy8gSXQgbWF5IHRha2Ugc29t
ZSB0aW1lIHRpbGwgZG9jdW1lbnQgZ2V0cyByZWFkeQogICAgaWYgKHZpZXdlci5z
dHlsZS5kaXNwbGF5ICE9ICcnKSB7CgkJYmc9IG5ldyBBcnJheSgpOyAvKiBBdHlw
b24gY2hhbmdlICovCgkJYmdbMF09JCgnaGVhZGVyJyk7CgkJYmdbMV09JCgnbWFp
bkJvZHknKTsKCQliZ1syXT0kKCdwYWdlRm9vdGVyLXdyYXAnKTsKCQl2YXIgcG9z
WT0wOwoKCQlpZiAoZS5wYWdlWSkgewoJCQlwb3NZID0gZS5wYWdlWTsKCQl9CgkJ
ZWxzZSBpZiAoZS5jbGllbnRZKSB7CgkJCXBvc1kgPSBlLmNsaWVudFkgKyBkb2N1
bWVudC5ib2R5LnNjcm9sbFRvcCArIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5z
Y3JvbGxUb3A7CgkJfQoKCQl3aGlsZSAoYmdbbl0pIHsKCQkJYmdbbl0uc3R5bGUu
TW96T3BhY2l0eT0iMC43MCI7CgkJCWJnW25dLnN0eWxlLktIVE1MT3BhY2l0eT0i
MC43MCI7CgkJCWJnW25dLnN0eWxlLm9wYWNpdHk9IjAuNzAiOwoJCQluKys7CgkJ
fQoJCUVmZmVjdC5BcHBlYXIoJ2ZpZ3VyZVZpZXdlci13cmFwJywge2R1cmF0aW9u
OjAuNX0pOwoJCXBvc1k9cG9zWS0xMDA7IC8vIG9mZnNldCBmcm9tIG1vdXNlIHBv
c2l0aW9uCgkJdmlld2VyLnN0eWxlLnRvcD1wb3NZKyJweCI7CgkJbmV3IERyYWdn
YWJsZSgnZmlndXJlVmlld2VyLXdyYXAnLHtzdGFydGVmZmVjdDogbnVsbCwgZW5k
ZWZmZWN0OiBudWxsfSk7Cgl9CgllbHNlIHsKCQl3aGlsZSAoYmdbbl0pIHsKCQkJ
Ymdbbl0uc3R5bGUuTW96T3BhY2l0eT0iMSI7CgkJCWJnW25dLnN0eWxlLktIVE1M
T3BhY2l0eT0iMSI7CgkJCWJnW25dLnN0eWxlLm9wYWNpdHk9IjEiOwoJCQluKys7
CgkJfQoJCUVmZmVjdC5GYWRlKCdmaWd1cmVWaWV3ZXItd3JhcCcsIHtkdXJhdGlv
bjowLjV9KTsKCX0KfQoKCi8vIFNlYXJjaCBQYWdlOiBKb3VybmFsIEZpbHRlciBJ
bnRlcmZhY2UgZnVuY3Rpb25zCmZ1bmN0aW9uIHRvZ2dsZWpGaWx0ZXIoKSB7Cgl2
YXIgdGFyZ2V0PSQoJ2pGaWx0ZXJJbnRlcmZhY2UnKTsKCWlmICh0YXJnZXQuc3R5
bGUuZGlzcGxheSA9PSAibm9uZSIpIHsKCQlFZmZlY3QuQXBwZWFyKHRhcmdldCwg
e2R1cmF0aW9uOjAuM30pOwoJfQoJZWxzZSB7CgkJRWZmZWN0LkZhZGUodGFyZ2V0
LCB7ZHVyYXRpb246MC4zfSk7Cgl9Cn0KZnVuY3Rpb24gam91cm5hbEZpbHRlcihh
Y3Rpb24sIHNraXBUb2dnbGUpIHsKCWlmIChhY3Rpb249PSJjYW5jZWwiKSB7CgkJ
dG9nZ2xlakZpbHRlcigpOwoJfQoJZWxzZSB7CgkJdmFyIG1heD1kb2N1bWVudC5h
ZHZTZWFyY2gucHVibGljYXRpb24ubGVuZ3RoOwoJCXZhciBjb2Rlbj1uZXcgQXJy
YXkoKTsKCQl2YXIgbGlzdD0kKCdzZWxKb3VybmFscycpOwoJCXZhciBjaGVja2Vk
PTA7CgkJZm9yICh2YXIgY291bnQ9MDsgY291bnQgPCBtYXg7IGNvdW50KyspIHsK
CQkJaWYgKGV2YWwoImRvY3VtZW50LmFkdlNlYXJjaC5wdWJsaWNhdGlvblsiICsg
Y291bnQgKyAiXS5jaGVja2VkIikgPT0gdHJ1ZSkgewoJCQkJY29kZW5bY2hlY2tl
ZF09ZG9jdW1lbnQuYWR2U2VhcmNoLnB1YmxpY2F0aW9uW2NvdW50XS52YWx1ZTsK
CQkJCWNoZWNrZWQrKzsKCQkJfQoJCX0KCQlpZiAoY2hlY2tlZCA9PSAwIHx8IGNo
ZWNrZWQ9PW1heCkgewoJCQlsaXN0LmlubmVySFRNTD0iPGxpPkFsbCBBQ1MgSm91
cm5hbHM8L2xpPiI7CiAgICAgICAgICAgIGlmICghc2tpcFRvZ2dsZSkgewogICAg
ICAgICAgICAgICAgdG9nZ2xlakZpbHRlcigpOwogICAgICAgICAgICB9CgkJfQoJ
CWVsc2UgewoJCQl2YXIgakxpc3Q9IiI7CgkJCXZhciBuPTA7CgkJCXdoaWxlIChj
b2RlbltuXSkgewoJCQkJY29kZW5bbl09ZGVjb2RlQ29kZW4oY29kZW5bbl0pOwoJ
CQkJakxpc3Q9akxpc3QgKyAiPGxpPiIgKyBjb2RlbltuXSArICI8L2xpPiI7CgkJ
CQluKys7CgkJCX0KCQkJbGlzdC5pbm5lckhUTUw9akxpc3Q7CgkJfQoJCW5ldyBF
ZmZlY3QuSGlnaGxpZ2h0KGxpc3QsIHtkdXJhdGlvbjogMi41fSk7CiAgICAgICAg
aWYgKCFza2lwVG9nZ2xlKSB7CiAgICAgICAgICAgIHRvZ2dsZWpGaWx0ZXIoKTsK
ICAgICAgICB9Cgl9Cn0KCmZ1bmN0aW9uIGNoYW5nZUFsbCh0b2dnbGUpIHsKCXZh
ciBib3hHcm91cD1kb2N1bWVudC5hZHZTZWFyY2gucHVibGljYXRpb247Cgl1cGRh
dGVDaGVja3MoYm94R3JvdXAsdG9nZ2xlKTsKfQoKZnVuY3Rpb24gdXBkYXRlQ2hl
Y2tzKGJveEdyb3VwLHRvZ2dsZSkgewoJdmFyIG1heD1ib3hHcm91cC5sZW5ndGg7
CglpZiAodG9nZ2xlPT0ic2VsZWN0IikgewoJCWZvciAodmFyIGNvdW50PTA7IGNv
dW50IDwgbWF4OyBjb3VudCsrKSB7CgkJCWJveEdyb3VwW2NvdW50XS5jaGVja2Vk
PXRydWU7CgkJfQoJfQoJZWxzZSB7CgkJZm9yICh2YXIgY291bnQ9MDsgY291bnQg
PCBtYXg7IGNvdW50KyspIHsKCQkJYm94R3JvdXBbY291bnRdLmNoZWNrZWQ9ZmFs
c2U7CgkJfQoJfQp9CgpmdW5jdGlvbiBkZWNvZGVDb2Rlbihjb2RlbikgewoJaWYg
KGNvZGVuPT0iYWNocmU0IikgY29kZW49IkFjY291bnRzIG9mIENoZW1pY2FsIFJl
c2VhcmNoIjsKCWlmIChjb2Rlbj09ImFhbWljayIpIGNvZGVuPSJBQ1MgQXBwbGll
ZCBNYXRlcmlhbCAmYW1wOyBJbnRlcmZhY2VzIjsKCWlmIChjb2Rlbj09ImFjYmNj
dCIpIGNvZGVuPSJBQ1MgQ2hlbWljYWwgQmlvbG9neSI7CglpZiAoY29kZW49PSJh
bmNhYzMiKSBjb2Rlbj0iQUNTIE5hbm8iOwoJaWYgKGNvZGVuPT0iYW5jaGFtIikg
Y29kZW49IkFuYWx5dGljYWwgQ2hlbWlzdHJ5IjsKCWlmIChjb2Rlbj09ImJpY2hh
dyIpIGNvZGVuPSJCaW9jaGVtaXN0cnkiOwoJaWYgKGNvZGVuPT0iYmNjaGVzIikg
Y29kZW49IkJpb2Nvbmp1Z2F0ZSBDaGVtaXN0cnkiOwoJaWYgKGNvZGVuPT0iYm9t
YWY2IikgY29kZW49IkJpb21hY3JvbW9sZWN1bGVzIjsKCWlmIChjb2Rlbj09ImJp
cHJldCIpIGNvZGVuPSJCaW90ZWNobm9sb2d5IFByb2dyZXNzIjsKCWlmIChjb2Rl
bj09ImNydG9lYyIpIGNvZGVuPSJDaGVtaWNhbCBSZXNlYXJjaCBpbiBUb3hpY29s
b2d5IjsKCWlmIChjb2Rlbj09ImNocmVheSIpIGNvZGVuPSJDaGVtaWNhbCBSZXZp
ZXdzIjsKCWlmIChjb2Rlbj09ImNtYXRleCIpIGNvZGVuPSJDaGVtaXN0cnkgb2Yg
TWF0ZXJpYWxzIjsKCWlmIChjb2Rlbj09ImNnZGVmdSIpIGNvZGVuPSJDcnlzdGFs
IEdyb3d0aCAmYW1wOyBEZXNpZ24iOwoJaWYgKGNvZGVuPT0iZW5mdWVtIikgY29k
ZW49IkVuZXJneSAmYW1wOyBGdWVscyI7CglpZiAoY29kZW49PSJlc3RoYWciKSBj
b2Rlbj0iRW52aXJvbm1lbnRhbCBTY2llbmNlICZhbXA7IFRlY2hub2xvZ3kiOwoJ
aWYgKGNvZGVuPT0iaWVjcmVkIikgY29kZW49IkluZHVzdHJpYWwgJmFtcDsgRW5n
aW5lZXJpbmcgQ2hlbWlzdHJ5IFJlc2VhcmNoIjsKCWlmIChjb2Rlbj09Imlub2Nh
aiIpIGNvZGVuPSJJbm9yZ2FuaWMgQ2hlbWlzdHJ5IjsKCWlmIChjb2Rlbj09Imph
ZmNhdSIpIGNvZGVuPSJKb3VybmFsIG9mIEFncmljdWx0dXJhbCBhbmQgRm9vZCBD
aGVtaXN0cnkiOwoJaWYgKGNvZGVuPT0iamFjc2F0IikgY29kZW49IkpvdXJuYWwg
b2YgdGhlIEFtZXJpY2FuIENoZW1pY2FsIFNvY2lldHkiOwoJaWYgKGNvZGVuPT0i
amNlYWF4IikgY29kZW49IkpvdXJuYWwgb2YgQ2hlbWljYWwgJmFtcDsgRW5naW5l
ZXJpbmcgRGF0YSI7CglpZiAoY29kZW49PSJqY2lzZDgiKSBjb2Rlbj0iSm91cm5h
bCBvZiBDaGVtaWNhbCBJbmZvcm1hdGlvbiBNb2RlbGluZyI7CglpZiAoY29kZW49
PSJqY3RjZWUiKSBjb2Rlbj0iSm91cm5hbCBvZiBDaGVtaWNhbCBUaGVvcnkgYW5k
IENvbXB1dGF0aW9uIjsKCWlmIChjb2Rlbj09ImpjY2hmZiIpIGNvZGVuPSJKb3Vy
bmFsIG9mIENvbWJpbmF0b3JpYWwgQ2hlbWlzdHJ5IjsKCWlmIChjb2Rlbj09Impt
Y21hciIpIGNvZGVuPSJKb3VybmFsIG9mIE1lZGljaW5hbCBDaGVtaXN0cnkiOwoJ
aWYgKGNvZGVuPT0iam5wcmRmIikgY29kZW49IkpvdXJuYWwgb2YgTmF0dXJhbCBQ
cm9kdWN0cyI7CglpZiAoY29kZW49PSJqb2NlYWgiKSBjb2Rlbj0iSm91cm5hbCBv
ZiBPcmdhbmljIENoZW1pc3RyeSI7CglpZiAoY29kZW49PSJqcGNhZmgiKSBjb2Rl
bj0iSm91cm5hbCBvZiBQaHlzaWNhbCBDaGVtaXN0cnkgQSI7CglpZiAoY29kZW49
PSJqcGNiZmsiKSBjb2Rlbj0iSm91cm5hbCBvZiBQaHlzaWNhbCBDaGVtaXN0cnkg
QiI7CglpZiAoY29kZW49PSJqcGNjY2siKSBjb2Rlbj0iSm91cm5hbCBvZiBQaHlz
aWNhbCBDaGVtaXN0cnkgQyI7CglpZiAoY29kZW49PSJqcHJvYnMiKSBjb2Rlbj0i
Sm91cm5hbCBvZiBQcm90ZW9tZSBSZXNlYXJjaCI7CglpZiAoY29kZW49PSJsYW5n
ZDUiKSBjb2Rlbj0iTGFuZ211aXIiOwoJaWYgKGNvZGVuPT0ibWFtb2J4IikgY29k
ZW49Ik1hY3JvbW9sZWN1bGVzIjsKCWlmIChjb2Rlbj09Im1wb2hicCIpIGNvZGVu
PSJNb2xlY3VsYXIgUGhhcm1hY2V1dGljcyI7CglpZiAoY29kZW49PSJuYWxlZmQi
KSBjb2Rlbj0iTmFubyBMZXR0ZXJzIjsKCWlmIChjb2Rlbj09Im9ybGVmNyIpIGNv
ZGVuPSJPcmdhbmljIExldHRlcnMiOwoJaWYgKGNvZGVuPT0ib3ByZGZrIikgY29k
ZW49Ik9yZ2FuaWMgUHJvY2VzcyBSZXNlYXJjaCAmYW1wOyBEZXZlbG9wbWVudCI7
CglpZiAoY29kZW49PSJvcmduZDciKSBjb2Rlbj0iT3JnYW5vbWV0YWxsaWNzIjsK
CXJldHVybiBjb2RlbjsKfQoKZnVuY3Rpb24gc2F2ZVNlYXJjaChhY3Rpb24pIHsK
CXZhciBidXR0b24xPSQoJ3NhdmVpdCcpOwoJdmFyIGJ1dHRvbjI9JCgnZmluYWxp
emUnKTsKCXZhciBsaW5rPSQoJ3ZpZXdTYXZlZCcpOwoJdmFyIGxheWVyMT0kKCdz
YXZlU2VhcmNoQScpOwoJdmFyIGxheWVyMj0kKCdzYXZlU2VhcmNoQicpOwoJdmFy
IGxheWVyMz0kKCdzYXZlU2VhcmNoQycpOwogICAgdmFyIGxheWVyND0kKCdzYXZl
U2VhcmNoRCcpOwoJaWYgKGFjdGlvbj09InN0ZXAyIikgewoJCUVmZmVjdC5GYWRl
KGJ1dHRvbjEpOwoJCUVmZmVjdC5BcHBlYXIoYnV0dG9uMik7CgkJRWZmZWN0LkZh
ZGUobGluayk7CgkJRWZmZWN0LkJsaW5kRG93bihsYXllcjIpOwoJfQoJZWxzZSBp
ZiAoYWN0aW9uPT0iY2FuY2VsIikgewoJCUVmZmVjdC5CbGluZFVwKGxheWVyMik7
CgkJRWZmZWN0LkFwcGVhcihidXR0b24xKTsKCQlFZmZlY3QuRmFkZShidXR0b24y
KTsKCQlFZmZlY3QuQXBwZWFyKGxpbmspOwoJfQogICAgZWxzZSBpZiAoYWN0aW9u
PT0ic2F2aW5nIikgeyAvLyBhdHlwb24gY2hhbmdlCiAgICAgICAgbGF5ZXIxLnN0
eWxlLmRpc3BsYXk9Im5vbmUiOwogICAgICAgIGxheWVyMi5zdHlsZS5kaXNwbGF5
PSJub25lIjsKICAgICAgICBFZmZlY3QuQXBwZWFyKGxheWVyMyk7CiAgICB9CiAg
ICBlbHNlIGlmIChhY3Rpb249PSJmaW5hbGl6ZSIpIHsKICAgICAgICBsYXllcjEu
c3R5bGUuZGlzcGxheT0ibm9uZSI7CiAgICAgICAgbGF5ZXIyLnN0eWxlLmRpc3Bs
YXk9Im5vbmUiOwogICAgICAgIGxheWVyMy5zdHlsZS5kaXNwbGF5PSJub25lIjsK
ICAgICAgICBFZmZlY3QuQXBwZWFyKGxheWVyNCk7IC8vIGF0eXBvbiBjaGFuZ2UK
ICAgIH0KCWVsc2UgcmV0dXJuIGZhbHNlOwp9CgpmdW5jdGlvbiBzaG93U2VhcmNo
VGlwcygpIHsKCXZhciB0aXBzPSQoJ3NlYXJjaFRpcHNMYXllcicpOwoJdmFyIGxp
bms9JCgnc2VhcmNoVGlwc0xpbmsnKTsKCXZhciBuZWVkZml4PTA7Cgl2YXIgcmVz
dWx0cz0kKCdyZXN1bHRzJyk7Cgl2YXIgcHVsbGRvd24xPXJlc3VsdHMuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoJ2Zvcm0nKVswXTsKCXZhciBwdWxsZG93bjI9cmVzdWx0
cy5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZm9ybScpWzFdOwoKCXZhciBicm93c2Vy
TmFtZT1uYXZpZ2F0b3IuYXBwTmFtZTsKCWlmIChicm93c2VyTmFtZT09Ik1pY3Jv
c29mdCBJbnRlcm5ldCBFeHBsb3JlciIpIHsKCQlpZiAobmF2aWdhdG9yLmFwcFZl
cnNpb24uaW5kZXhPZigiTVNJRSIpIT0tMSkgewoJCQl2YXIgdGVtcD1uYXZpZ2F0
b3IuYXBwVmVyc2lvbi5zcGxpdCgiTVNJRSIpOwoJCQl2YXIgdmVyc2lvbj1wYXJz
ZUZsb2F0KHRlbXBbMV0pOwoJCX0KCQlpZiAodmVyc2lvbiA8IDcpIG5lZWRmaXg9
MTsKCX0KCgoJaWYgKHRpcHMuc3R5bGUuZGlzcGxheT09Im5vbmUiKSB7CgkJaWYg
KG5lZWRmaXg9PTEpIHsKCQkJcHVsbGRvd24xLnN0eWxlLmRpc3BsYXk9Im5vbmUi
OwoJCQlwdWxsZG93bjIuc3R5bGUuZGlzcGxheT0ibm9uZSI7CgkJfQoJRWZmZWN0
LkFwcGVhcih0aXBzKTsKCWxpbmsuaW5uZXJIVE1MPSJIaWRlIFNlYXJjaCBUaXBz
IjsKCX0KCgllbHNlIHsKCQlpZiAobmVlZGZpeD09MSkgewoJCQlwdWxsZG93bjEu
c3R5bGUuZGlzcGxheT0iYmxvY2siOwoJCQlwdWxsZG93bjIuc3R5bGUuZGlzcGxh
eT0iYmxvY2siOwoJCX0KCUVmZmVjdC5GYWRlKHRpcHMpOwoJbGluay5pbm5lckhU
TUw9IlNob3cgU2VhcmNoIFRpcHMiOwoJfQp9CgpmdW5jdGlvbiBzaG93SXNzdWVz
KGxpbmspIHsKICAgICQobGluaykudXAoJ3VsJykudG9nZ2xlQ2xhc3NOYW1lKCdj
bG9zZWQnKTsKfQoKLy8gT25saW5lIE5ld3MgQXJjaGl2ZQpmdW5jdGlvbiBzaG93
TW9udGgoYW5jaG9yLG1vbnRoKSB7Cgl2YXIgbW9udGhzID0gbmV3IEFycmF5KCk7
Cgltb250aHNbMF09ImFsbCI7Cgltb250aHNbMV09ImphbiI7Cgltb250aHNbMl09
ImZlYiI7Cgltb250aHNbM109Im1hciI7Cgltb250aHNbNF09ImFwciI7Cgltb250
aHNbNV09Im1heSI7Cgltb250aHNbNl09Imp1biI7Cgltb250aHNbN109Imp1bCI7
Cgltb250aHNbOF09ImF1ZyI7Cgltb250aHNbOV09InNlcCI7Cgltb250aHNbMTBd
PSJvY3QiOwoJbW9udGhzWzExXT0ibm92IjsKCW1vbnRoc1sxMl09ImRlYyI7CgoJ
Ly8gaGlkZSBhbGwgbGF5ZXJzCglmb3IgKHg9MTsgeDwxMzsgeCsrKSB7CgkJdmFy
IGhpZGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobW9udGhzW3hdKS5zdHlsZTsK
CQloaWRlLmRpc3BsYXk9Im5vbmUiOwoJfQoKCS8vIHJlc2V0IGFsbCBhbmNob3Jz
Cglmb3IgKHg9MDsgeDwxMzsgeCsrKSB7CgkJdmFyIGNoYW5nZT1hbmNob3IucGFy
ZW50Tm9kZS5wYXJlbnROb2RlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdhJylbeF0u
c3R5bGU7CgkJY2hhbmdlLmJhY2tncm91bmRDb2xvcj0iI2VlZSI7CgkJY2hhbmdl
LmNvbG9yPSIjMzY5IjsKCX0KCgkvLyBzaG93IHRoZSBhcHByb3ByaWF0ZSBsYXll
cihzKQoJaWYgKG1vbnRoPT0iYWxsIikgewoJCWZvciAoeD0xOyB4PDEzOyB4Kysp
IHsKCQkJdmFyIHNob3c9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobW9udGhzW3hd
KTsKCQkJRWZmZWN0LkFwcGVhcihzaG93KTsKCQl9Cgl9CgllbHNlIHsKCQltb250
aD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChtb250aCk7CgkJRWZmZWN0LkFwcGVh
cihtb250aCk7Cgl9CgkvLyBoaWdobGlnaHQgdGhlIGFwcHJvcHJpYXRlIGFuY2hv
cgoJYW5jaG9yLnN0eWxlLmJhY2tncm91bmRDb2xvcj0iIzM2OSI7CglhbmNob3Iu
c3R5bGUuY29sb3I9IiNmZmYiOwp9CgovLyBFbWFpbCBSZWdpc3RyYXRpb24KZnVu
Y3Rpb24gZW5hYmxlUmFkaW8oY2hlY2tib3gsIHJhZGlvMSwgcmFkaW8yKSB7Cglj
aGVja2JveD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChjaGVja2JveCk7CglyYWRp
bzE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocmFkaW8xKTsKCXJhZGlvMj1kb2N1
bWVudC5nZXRFbGVtZW50QnlJZChyYWRpbzIpOwoJaWYgKGNoZWNrYm94LmNoZWNr
ZWQ9PXRydWUpIHsKCQlyYWRpbzEuZGlzYWJsZWQ9ZmFsc2U7CgkJcmFkaW8yLmRp
c2FibGVkPWZhbHNlOwoJfQoJZWxzZSB7CgkJcmFkaW8xLmRpc2FibGVkPXRydWU7
CgkJcmFkaW8yLmRpc2FibGVkPXRydWU7Cgl9Cn0KCi8vIEVsZWN0cm9uaWMgR2Fs
bGV5IFByb29mCmZ1bmN0aW9uIGVuYWJsZVRleHRhcmVhKHRleHRBcmVhSUQpIHsK
CXJhZGlvU2V0PWRvY3VtZW50LnByb29mRm9ybS5yZWFkeVN0YXRlOwoJdGV4dGJv
eD0kKHRleHRBcmVhSUQpOwoJZm9yICh2YXIgaT0wOyBpIDwgcmFkaW9TZXQubGVu
Z3RoOyBpKyspIHsKCQlpZiAocmFkaW9TZXRbaV0uY2hlY2tlZCkgewoJCQl2YXIg
cmFkaW9WYWx1ZSA9IHJhZGlvU2V0W2ldLnZhbHVlOwoJCX0KCX0KCWlmIChyYWRp
b1ZhbHVlPT0ibm9idXR0b24iKSB7CgkJdGV4dGJveC5kaXNhYmxlZD1mYWxzZTsK
CX0KCWVsc2UgewoJCXRleHRib3guZGlzYWJsZWQ9dHJ1ZTsKCX0KfQoKLy8gUHJv
ZmlsZTogU2F2ZWQgU2VhcmNoZXMKZnVuY3Rpb24gdG9nZ2xlQ3JpdGVyaWEoYnV0
dG9uKSB7Cgljcml0ZXJpYT1idXR0b24ucGFyZW50Tm9kZS5wYXJlbnROb2RlLmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCdkaXYnKVsxXTsKCWlmIChjcml0ZXJpYS5zdHls
ZS5kaXNwbGF5PT0ibm9uZSIpIHsKCQlFZmZlY3QuQmxpbmREb3duKGNyaXRlcmlh
KTsKCQlidXR0b24uaW5uZXJIVE1MPSImdWFycjsgSGlkZSBDcml0ZXJpYSI7Cgl9
CgllbHNlIHsKCQlFZmZlY3QuQmxpbmRVcChjcml0ZXJpYSk7CgkJYnV0dG9uLmlu
bmVySFRNTD0iJmRhcnI7IFNob3cgQ3JpdGVyaWEiOwoJfQp9CgovKiBBdHlwb24g
YWRkZWQgKi8KZnVuY3Rpb24gaW5pdFZpZXdlcihlKSB7CiAgICBpZiAoIXdpbmRv
dy5maWd1cmVWaWV3ZXIpIHJldHVybiBmYWxzZTsKCWlmICgkKCdmaWd1cmVWaWV3
ZXItd3JhcCcpICYmICQoJ2ZpZ3VyZVZpZXdlci13cmFwJykuc3R5bGUuZGlzcGxh
eSA9PSAnJykgcmV0dXJuIGZhbHNlOwoKICAgIHZhciBmaWd1cmVzID0gd2luZG93
LmZpZ3VyZVZpZXdlci5maWd1cmVzOwoKICAgIC8qIGNsZWFyIHVwIGZpZ3VyZXMg
dGhhdCB3ZXJlIG5vdCByZW5kZXJlZCAqLwogICAgZm9yICh2YXIgaSA9IGZpZ3Vy
ZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKICAgICAgICB2YXIgZmlndXJl
TWV0YSA9IGZpZ3VyZXNbaV07CiAgICAgICAgaWYgKCFmaWd1cmVNZXRhIHx8ICEk
KGZpZ3VyZU1ldGEuaSkpIGZpZ3VyZXMuc3BsaWNlKGksIDEpOwogICAgfQogICAg
aWYgKGZpZ3VyZXMubGVuZ3RoID09IDApIHsKICAgICAgICB3aW5kb3cuZmlndXJl
Vmlld2VyID0gbnVsbDsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAg
dmFyIGZ2dyA9ICQoJ2ZpZ3VyZVZpZXdlci13cmFwJyk7CiAgICBpZiAoIWZ2dykg
ewogICAgICAgIHZhciBjID0gJCgnY29udGFpbmVyJyk7CiAgICAgICAgaWYgKGMp
IHsKICAgICAgICAgICAgZnZ3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7CiAgICAgICAgICAgIGZ2dy5pZD0nZmlndXJlVmlld2VyLXdyYXAnOwogICAg
ICAgICAgICBmdncuc3R5bGUuZGlzcGxheT0nbm9uZSc7CiAgICAgICAgICAgIGMu
YXBwZW5kQ2hpbGQoZnZ3KTsKICAgICAgICAgICAgZnZ3LmlubmVySFRNTCA9CiAg
ICAgICAgICAgICAgICAnPGRpdiBpZD0iZmlndXJlVmlld2VyIj5cCiAgICAgICAg
ICAgICAgICAgICAgPGRpdiBpZD0iZmlndXJlVmlld2VyTmF2Ij5cCiAgICAgICAg
ICAgICAgICAgICAgICAgIDxhIHRpdGxlPSJDbG9zZSBGaWd1cmUgVmlld2VyIiBo
cmVmPSIjIiBvbmNsaWNrPSJzaG93RmlndXJlcyhldmVudCk7IHJldHVybiBmYWxz
ZTsiIGNsYXNzPSJjbG9zZSI+Q2xvc2U8L2E+XAogICAgICAgICAgICAgICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJmaWd1cmVOYXYiPlwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxhIGNsYXNzPSJwcmV2IiB0aXRsZT0iUHJldmlvdXMgRmlndXJl
IiBocmVmPSIjIiBjbGFzcz0iZGlzYWJsZWQiPjwvYT5cCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8c3Bhbj5GaWd1cmUgPHNwYW4gY2xhc3M9ImluZGV4Ij4x
PC9zcGFuPiBvZiAnICsgZmlndXJlcy5sZW5ndGggKyAnPC9zcGFuPlwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJuZXh0IiB0aXRsZT0iTmV4
dCBGaWd1cmUiIGhyZWY9IiMiIGNsYXNzPSJkaXNhYmxlZCI+PC9hPlwKICAgICAg
ICAgICAgICAgICAgICAgICAgPC9kaXY+XAogICAgICAgICAgICAgICAgICAgIDwv
ZGl2PlwKICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJmaWd1cmVDYW52YXMi
PlwKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iZmlnVG9vbHMiPlwK
ICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XAogICAgICAgICAgICAgICAg
ICAgICAgICA8ZGl2IGNsYXNzPSJmaWdCb3giPlwKICAgICAgICAgICAgICAgICAg
ICAgICAgPC9kaXY+XAogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNz
PSJjYXB0aW9uIj4mbmJzcDtcCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2
PlwKICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cCiAgICAgICAgICAgICAgICA8
L2Rpdj5cCiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJmaWd1cmVWaWV3ZXItZm9v
dGVyIj5cCiAgICAgICAgICAgICAgICAgICAgPGltZyBhbHQ9IiIgc3JjPSIvdGVt
cGxhdGVzL2pzcC9fc3R5bGUyL19hY2hzL2ltYWdlcy9maWd1cmVWaWV3ZXItYmcz
LmdpZiIvPlwKICAgICAgICAgICAgICAgIDwvZGl2Pic7CiAgICAgICAgICAgIGZ2
dyA9ICQoZnZ3KTsKICAgICAgICB9CiAgICB9CgogICAgdmFyIGluZGV4ID0gMDsK
ICAgIHZhciBmaWd1cmVFbGVtZW50ID0gRXZlbnQuZmluZEVsZW1lbnQoZSwgIi5m
aWd1cmUiKTsKICAgIGlmIChmaWd1cmVFbGVtZW50ICYmIGZpZ3VyZUVsZW1lbnQu
aWQpIHsKICAgICAgICB2YXIgZmlndXJlSWQgPSBmaWd1cmVFbGVtZW50LmlkOwog
ICAgICAgIHdoaWxlIChpbmRleCA8IGZpZ3VyZXMubGVuZ3RoICYmIGZpZ3VyZXNb
aW5kZXhdLmkgIT0gZmlndXJlSWQpIGluZGV4Kys7CiAgICB9CiAgICBzaG93SW1h
Z2UoaW5kZXgpOwp9CgpmdW5jdGlvbiBzaG93SW1hZ2UoaW5kZXgpIHsKICAgIHZh
ciBmaWd1cmVzID0gd2luZG93LmZpZ3VyZVZpZXdlci5maWd1cmVzOwogICAgdmFy
IGZpZ3VyZU1ldGEgPSBmaWd1cmVzW2luZGV4XTsKICAgIGlmICghZmlndXJlTWV0
YSkgZmlndXJlTWV0YSA9IGZpZ3VyZXNbaW5kZXg9MF07CiAgICB2YXIgZ3JhcGhp
Y3MgPSBmaWd1cmVNZXRhLmc7CiAgICB2YXIgZmlndXJlRWxlbWVudCA9ICQoZmln
dXJlTWV0YS5pKTsKCiAgICB2YXIgZnZ3ID0gJCgnZmlndXJlVmlld2VyLXdyYXAn
KTsKCiAgICAvKiBpbWFnZSBhbmQgY2FwdGlvbiAqLwogICAgdmFyIGh0bWwgPSAi
IjsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZ3JhcGhpY3MubGVuZ3RoOyBpKysp
IHsKICAgICAgICBodG1sICs9ICc8aW1nIGFsdD0iRmlndXJlIiBzcmM9IicgKyB3
aW5kb3cuZmlndXJlVmlld2VyLnBhdGggKyAnL2ltYWdlcy9tZWRpdW0vJyArIGdy
YXBoaWNzW2ldLm0gKyAnIi8+JzsKICAgIH0KICAgIGZ2dy5kb3duKCIuZmlnQm94
IikuaW5uZXJIVE1MID0gaHRtbDsKICAgIHZhciBjYXB0aW9uRWxlbWVudCA9IGZp
Z3VyZUVsZW1lbnQuZG93bigiLmNhcHRpb24iKTsKICAgIGZ2dy5kb3duKCIuY2Fw
dGlvbiIpLmlubmVySFRNTCA9IGNhcHRpb25FbGVtZW50ID8gY2FwdGlvbkVsZW1l
bnQuaW5uZXJIVE1MIDogIiI7CgogICAgLyogbmF2aWdhdGlvbiAqLwogICAgdmFy
IHBMaW5rID0gZnZ3LmRvd24oJy5wcmV2Jyk7CiAgICBpZiAoaW5kZXggPT0gMCkg
ewogICAgICAgIHBMaW5rLmFkZENsYXNzTmFtZSgiZGlzYWJsZWQiKTsKICAgICAg
ICBwTGluay5ocmVmID0gIiMiCiAgICB9IGVsc2UgewogICAgICAgIHBMaW5rLnJl
bW92ZUNsYXNzTmFtZSgiZGlzYWJsZWQiKTsKICAgICAgICBwTGluay5ocmVmID0g
IkphdmFTY3JpcHQ6c2hvd0ltYWdlKCIgKyAoaW5kZXggLSAxKSArICIpIjsKICAg
IH0KCiAgICBpbmRleCsrOwogICAgdmFyIG5MaW5rID0gZnZ3LmRvd24oJy5uZXh0
Jyk7CiAgICBpZiAoaW5kZXggPT0gZmlndXJlcy5sZW5ndGgpIHsKICAgICAgICBu
TGluay5hZGRDbGFzc05hbWUoImRpc2FibGVkIik7CiAgICAgICAgbkxpbmsuaHJl
ZiA9ICIjIgogICAgfSBlbHNlIHsKICAgICAgICBuTGluay5yZW1vdmVDbGFzc05h
bWUoImRpc2FibGVkIik7CiAgICAgICAgbkxpbmsuaHJlZiA9ICJKYXZhU2NyaXB0
OnNob3dJbWFnZSgiICsgaW5kZXggKyAiKSI7CiAgICB9CgogICAgZnZ3LmRvd24o
Jy5pbmRleCcpLmlubmVySFRNTCA9IGluZGV4OwoKICAgIC8qIGZpZ3VyZSB0b29s
cyAqLwogICAgdmFyIGZ0SHRtbCA9ICcnOwoKICAgIGlmIChmaWd1cmVNZXRhLndl
bykgewogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmlndXJlTWV0YS53ZW8u
bGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgdmFyIHdlbyA9IGZpZ3VyZU1ldGEu
d2VvW2ldOwogICAgICAgICAgICBpZiAod2VvICYmIHdlby5oKSB7CiAgICAgICAg
ICAgICAgICBmdEh0bWwgKz0gJzxkaXYgY2xhc3M9IndlbyI+PGEgdGl0bGU9IlZp
ZXcgdGhpcyBXZWIgRW5oYW5jZWQgT2JqZWN0JwogICAgICAgICAgICAgICAgaWYg
KHdlby50KSB7IGZ0SHRtbCArPSAnOiAnICsgd2VvLnQ7IH0KICAgICAgICAgICAg
ICAgIGZ0SHRtbCArPSAnIiBocmVmPSInICsgd2VvLmggKyAnIiB0YXJnZXQ9Il9i
bGFuayI+PHNwYW4+V2ViIEVuaGFuY2VkIE9iamVjdDwvc3Bhbj48L2E+PC9kaXY+
JzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCgogICAgaHRtbCA9ICcn
OwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBncmFwaGljcy5sZW5ndGg7IGkrKykg
ewogICAgICAgIGlmIChncmFwaGljc1tpXS5sKSB7CiAgICAgICAgICAgIGlmICho
dG1sKSBodG1sICs9ICc8YnIgLz4nOyAvLyBpcyBub3QgZmlyc3QgbGluawogICAg
ICAgICAgICBodG1sICs9ICc8YSBocmVmPSInICsgd2luZG93LmZpZ3VyZVZpZXdl
ci5wYXRoICsgJy9pbWFnZXMvbGFyZ2UvJyArIGdyYXBoaWNzW2ldLmwgKyAnIj48
c3Bhbj5IaWdoIFJlc29sdXRpb24gSW1hZ2U8L3NwYW4+PC9hPic7CiAgICAgICAg
fQogICAgfQogICAgaWYgKGh0bWwpIGZ0SHRtbCArPSAnPGRpdiBjbGFzcz0iaGln
aFJlcyI+JyArIGh0bWwgKyAnPC9kaXY+JzsKCiAgICBmdEh0bWwgKz0gJzxkaXYg
Y2xhc3M9InBwdCI+PGEgdGl0bGU9IkRvd25sb2FkIE1TIFBvd2VyUG9pbnQgU2xp
ZGUiIGhyZWY9Ii9hY3Rpb24vZG93bmxvYWRGaWd1cmVzP2RvaT0nICsgd2luZG93
LmZpZ3VyZVZpZXdlci5kb2kgKyAnJmlkPScgKyBmaWd1cmVNZXRhLmkgKyAnIj5c
CiAgICAgICAgICAgICAgICAgIDxzcGFuPlBvd2VyUG9pbnQgU2xpZGU8L3NwYW4+
XAogICAgICAgICAgICAgICA8L2E+PC9kaXY+JzsKCiAgICBmdncuZG93bignI2Zp
Z1Rvb2xzJykuaW5uZXJIVE1MID0gZnRIdG1sOwp9CgpmdW5jdGlvbiByZXF1ZXN0
RmlndXJlcyh1cmwpIHsKICAgIHJlcXVlc3RGaWd1cmVzKCcvYWN0aW9uL3Nob3dG
dWxsUG9wdXA/aWQ9ZmlndXJlSW5mbyZkb2k9MTAuMTAyMS9hYzA2MDEyMGEnKTsK
ICAgIHNob3dMb2FkaW5nKCk7CgogICAgbmV3IEFqYXguUmVxdWVzdCh1cmwsIHsK
ICAgICAgICBvblN1Y2Nlc3M6IGZ1bmN0aW9uKHRyYW5zcG9ydCkgewogICAgICAg
ICAgICBhbGVydCh0cmFuc3BvcnQucmVzcG9uc2VUZXh0KTsKICAgICAgICAgICAg
ZGlzcGxheUZpZ3VyZUJyb3dzZXIoKTsKICAgICAgICB9CiAgICB9KTsKfQoKZnVu
Y3Rpb24gc2hvd0xvYWRpbmcoKSB7CiAgICBhbGVydCgiTG9hZGluZyIpOwp9Cgpm
dW5jdGlvbiBkaXNwbGF5RmlndXJlQnJvd3NlcigpIHsKICAgIGFsZXJ0KCJMb2Fk
ZWQiKTsKfQpmdW5jdGlvbiBwb3BSZWYyKGlkcykgewoKfQoKZnVuY3Rpb24gaW5p
dFJlZmVyZW5jZXNCYWxvb24obGluaywgaWRzKSB7CiAgICBpZiAoIWlkcykgcmV0
dXJuOwogICAgbGluayA9ICQobGluayk7CiAgICB2YXIgYnYgPSBsaW5rLm5leHQo
KTsKICAgIGlmICghYnYgfHwgYnYudGFnTmFtZS50b0xvd2VyQ2FzZSgpIT0gJ3Nw
YW4nIHx8IGJ2LmNsYXNzTmFtZSE9J3JlZicpIHsKICAgICAgICBpZiAodHlwZW9m
IGlkcyA9PSAic3RyaW5nIikgaWRzID0gaWRzLnNwbGl0KCcgJyk7CiAgICAgICAg
dmFyIGNvbnRlbnQgPSAiIjsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlk
cy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB2YXIgcmVmTGFiZWwgPSAkKGlk
c1tpXSkuZG93bignLnJlZkxhYmVsJyk7CiAgICAgICAgICAgIGlmIChyZWZMYWJl
bCAmJiBpZHMubGVuZ3RoID09IDEpewogICAgICAgICAgICAgICAgLy9yZW1vdmUg
bGFiZWwgb25seSBmb3IgZGlzcGxheSBwdXJwb3Nlcy4KICAgICAgICAgICAgICAg
IHZhciBsYWJlbCA9IHJlZkxhYmVsLmlubmVySFRNTDsKICAgICAgICAgICAgICAg
IHJlZkxhYmVsLmlubmVySFRNTD0iIjsKICAgICAgICAgICAgICAgIGNvbnRlbnQg
Kz0gJzxzcGFuPicgKyAkKGlkc1tpXSkuaW5uZXJIVE1MICsgIjwvc3Bhbj4iOwog
ICAgICAgICAgICAgICAgLy9pbnNlcnQgaXQgYmFjayBhZnRlciBkaXNwbGF5IGlu
Y2FzZSB0aGUgc2FtZSByZWZlcmVuY2UgaXMgdXNlZCB3aXRoIGFub3RoZXIgb25l
IChtdWx0aXBsZSByZWZlcmVuY2VzIHNob3VsZCBkaXNwbGF5IGxhYmVscykKICAg
ICAgICAgICAgICAgIHJlZkxhYmVsLmlubmVySFRNTD1sYWJlbDsKICAgICAgICAg
ICAgfWVsc2V7CiAgICAgICAgICAgICAgICBjb250ZW50ICs9ICc8c3Bhbj4nICsg
JChpZHNbaV0pLmlubmVySFRNTCArICI8L3NwYW4+IjsKICAgICAgICAgICAgfQog
ICAgICAgIH0KICAgICAgICBsaW5rLmluc2VydCh7YWZ0ZXI6ICc8c3BhbiBjbGFz
cz0icmVmIj48c3BhbiBjbGFzcz0iYmFsbG9vbi13cmFwIj48c3BhbiBjbGFzcz0i
YmFsbG9vbiI+PGEgdGl0bGU9IkhpZGUgUmVmZXJlbmNlIEluZm9ybWF0aW9uIiBv
bmNsaWNrPSJoaWRlUmVmKHRoaXMpOyByZXR1cm4gZmFsc2U7IiBocmVmPSJKYXZh
U2NyaXB0OnZvaWQoMCk7IiBjbGFzcz0iY2xvc2UiPjwvYT4nICsgY29udGVudCAr
ICc8YSBjbGFzcz0icmVmTGluayIgdGl0bGU9IlZpZXcgUmVmZXJlbmNlcyIgb25j
bGljaz0iaGlkZVJlZih0aGlzKTsiIGhyZWY9IiNyZWZlcmVuY2VzIj5WaWV3IEZ1
bGwgUmVmZXJlbmNlIExpc3Q8L2E+PC9zcGFuPjwvc3Bhbj48L3NwYW4+J30pOwog
ICAgfQp9Ci8vYXR5cG9uIG1ldGhvZApmdW5jdGlvbiBzZXR1cE5leHRQcmV2KGZp
Z3VyZU5hdiwgZG9pRmlndXJlLCBpbmRleCl7CiAgICB2YXIgY3VycmVudEltYWdl
cyA9IGRvaUZpZ3VyZS5pbWFnZXM7CiAgICB2YXIgc2l6ZSA9IGN1cnJlbnRJbWFn
ZXMubGVuZ3RoOwogICAgaWYgKHNpemU9PTEpewogICAgICAgICQoZmlndXJlTmF2
KS5hZGRDbGFzc05hbWUoImRpc2FibGVkIik7Ly9ieSBkZWZhdWx0CiAgICAgICAg
ZmlndXJlTmF2LnN0eWxlLmRpc3BsYXk9Im5vbmUiOwogICAgICAgIHJldHVybjsK
ICAgIH07CiAgICBmaWd1cmVOYXYuc3R5bGUuZGlzcGxheT0iYmxvY2siOwogICAg
dmFyIGRvaSA9IGRvaUZpZ3VyZS5kb2k7CiAgICB2YXIgbkxpbmsgPSAkKGZpZ3Vy
ZU5hdikuZG93bignLm5leHQnKTsKICAgIHZhciBwcmV2TGluayA9ICQoZmlndXJl
TmF2KS5kb3duKCcucHJldicpOwogICAgaWYgKGluZGV4ID09IHNpemUtMSl7Ly9p
bmRleCBpcyBsYXN0LCBkaXNhYmxlIG5leHQgYW5kIHNldCBwcmV2aW91cwogICAg
ICAgIG5MaW5rLmFkZENsYXNzTmFtZSgiZGlzYWJsZWQiKTsKICAgICAgICBwcmV2
TGluay5yZW1vdmVDbGFzc05hbWUoImRpc2FibGVkIik7CiAgICAgICAgcHJldkxp
bmsuc3RvcE9ic2VydmluZygnY2xpY2snLHByZXZFdmVudCk7CiAgICAgICAgdmFy
IHByZXZFdmVudCA9IGZ1bmN0aW9uKGUpe2NoYW5nZUltYWdlKHRoaXMsaW5kZXgt
MSxkb2kpOyBFdmVudC5zdG9wKGUpfQogICAgICAgIHByZXZMaW5rLm9ic2VydmUo
J2NsaWNrJywgcHJldkV2ZW50KTsKICAgIH1lbHNlIGlmKGluZGV4ID09IDApeyAv
L2luZGV4IGlzIGZpcnN0LCBkaXNhYmxlIHByZXYgYW5kIHNldCBuZXh0CiAgICAg
ICAgcHJldkxpbmsuYWRkQ2xhc3NOYW1lKCJkaXNhYmxlZCIpOwogICAgICAgIG5M
aW5rLnJlbW92ZUNsYXNzTmFtZSgiZGlzYWJsZWQiKTsKICAgICAgICBuTGluay5z
dG9wT2JzZXJ2aW5nKCdjbGljaycsbmV4dEV2ZW50KTsKICAgICAgICB2YXIgbmV4
dEV2ZW50ID0gZnVuY3Rpb24oZSl7Y2hhbmdlSW1hZ2UodGhpcyxpbmRleCsxLGRv
aSk7IEV2ZW50LnN0b3AoZSl9OwogICAgICAgIG5MaW5rLm9ic2VydmUoJ2NsaWNr
JywgbmV4dEV2ZW50KQogICAgfWVsc2V7CiAgICAgICAgcHJldkxpbmsucmVtb3Zl
Q2xhc3NOYW1lKCJkaXNhYmxlZCIpOwogICAgICAgIHByZXZMaW5rLnN0b3BPYnNl
cnZpbmcoJ2NsaWNrJyxwcmV2RXZlbnQpOwogICAgICAgIHZhciBwcmV2RXZlbnQg
PSBmdW5jdGlvbihlKXtjaGFuZ2VJbWFnZSh0aGlzLGluZGV4LTEsZG9pKTsgRXZl
bnQuc3RvcChlKX07CiAgICAgICAgcHJldkxpbmsub2JzZXJ2ZSgnY2xpY2snLHBy
ZXZFdmVudCkKICAgICAgICBuTGluay5yZW1vdmVDbGFzc05hbWUoImRpc2FibGVk
Iik7CiAgICAgICAgbkxpbmsuc3RvcE9ic2VydmluZygnY2xpY2snLG5leHRFdmVu
dCk7CiAgICAgICAgdmFyIG5leHRFdmVudCA9IGZ1bmN0aW9uKGUpe2NoYW5nZUlt
YWdlKHRoaXMsaW5kZXgrMSxkb2kpOyBFdmVudC5zdG9wKGUpfTsKICAgICAgICBu
TGluay5vYnNlcnZlKCdjbGljaycsbmV4dEV2ZW50KTsKICAgICB9CiAgICBmaWd1
cmVOYXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NwYW4nKVswXS5pbm5lckhUTUw9
J0ZpZ3VyZSAnICsgZXZhbChpbmRleCsxKSArICcgb2YgJyArIHNpemU7Cn0KCmZ1
bmN0aW9uIGNoYW5nZUltYWdlKG5hdkxpbmssIGluZGV4LCBkb2kpewogICAgdmFy
IGZpZ3VyZVRyYXkgPSBuYXZMaW5rLnBhcmVudE5vZGUucGFyZW50Tm9kZS5wYXJl
bnROb2RlOwogICAgdmFyIGltZ1RhZyA9ICQoZmlndXJlVHJheSkuZG93bignLmFy
dGljbGVGaWd1cmUnKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW1nJylbMF07CiAg
ICB2YXIgZG9pRmlndXJlID0gZ2V0RG9pRmlndXJlcyhkb2kpOwogICAgaWYgKCFk
b2lGaWd1cmUpIHJldHVybjsKCWltZ1RhZy5zdHlsZS5ib3JkZXI9IjAiOwoJaW1n
VGFnLnNyYz0iL3RlbXBsYXRlcy9qc3AvX3N0eWxlMi9fYWNocy9pbWFnZXMvbG9h
ZGluZy5naWYiOwogICAgc2V0VGltZW91dChmdW5jdGlvbigpIHt1cGRhdGVGaWdJ
bWcoZG9pRmlndXJlLCBpbmRleCwgaW1nVGFnKTsgaW1nVGFnLnN0eWxlLmJvcmRl
cj0iMXB4IHNvbGlkICNjY2MiOyB9LCA1MDApOwogICAgdmFyIGZpZ3VyZU5hdiA9
ICQoaW1nVGFnKS51cCgnLmZpZ3VyZVRyYXknKS5kb3duKCcuZmlndXJlTmF2Jyk7
CiAgICBzZXR1cE5leHRQcmV2KGZpZ3VyZU5hdiwgZG9pRmlndXJlLCBpbmRleCk7
Cn0KZnVuY3Rpb24gZ2V0RG9pSW5kZXgoZG9pKXsKICAgIHZhciBmaWd1cmVzID0g
d2luZG93LmZpZ3VyZVZpZXdlcjsKICAgIGlmICghZmlndXJlcykgcmV0dXJuIC0x
OwogICAgdmFyIG1heCA9IGZpZ3VyZXMubGVuZ3RoOwogICAgZm9yICh2YXIgY291
bnQ9MDsgY291bnQgPCBtYXg7IGNvdW50KyspIHsKICAgICAgICBpZiAoZmlndXJl
c1tjb3VudF0uZG9pID09IGRvaSl7CiAgICAgICAgICAgcmV0dXJuIGNvdW50Owog
ICAgICAgIH0KICAgIH0KICAgIHJldHVybiAtMTsKfQpmdW5jdGlvbiBnZXREb2lG
aWd1cmVzKGRvaSl7CiAgICB2YXIgZG9pRmlndXJlOwogICAgdmFyIGZpZ3VyZXMg
PSB3aW5kb3cuZmlndXJlVmlld2VyOwogICAgaWYgKCFmaWd1cmVzKSByZXR1cm47
CiAgICB2YXIgbWF4ID0gZmlndXJlcy5sZW5ndGg7CiAgICBmb3IgKHZhciBjb3Vu
dD0wOyBjb3VudCA8IG1heDsgY291bnQrKykgewogICAgICAgIGlmIChmaWd1cmVz
W2NvdW50XS5kb2kgPT0gZG9pKXsKICAgICAgICAgICByZXR1cm4gZG9pRmlndXJl
PWZpZ3VyZXNbY291bnRdOwogICAgICAgIH0KICAgIH0KfQoKZnVuY3Rpb24gYWRk
RmlndXJlKGRvaSwgcGF0aCwgaW1hZ2VzLCBpc1RvY0ZpZ3VyZSl7CiAgICB2YXIg
ZmlndXJlVmlld2VyID0gd2luZG93LmZpZ3VyZVZpZXdlcjsKICAgIHZhciBmaWd1
cmUgPSB7ZG9pOmRvaSxwYXRoOnBhdGgsaW1hZ2VzOltpbWFnZXNdfTsKICAgIGlm
IChpc1RvY0ZpZ3VyZSkgZmlndXJlLmlzVG9jRmlndXJlID0gdHJ1ZTsKICAgIHZh
ciBkb2lJbmRleCA9IGdldERvaUluZGV4KGRvaSk7CiAgICBpZiAoIWZpZ3VyZVZp
ZXdlcil7CiAgICAgICAgZmlndXJlVmlld2VyID0gbmV3IEFycmF5KCk7CiAgICAg
ICAgZmlndXJlVmlld2VyWzBdPWZpZ3VyZTsKICAgIH1lbHNlIGlmKGRvaUluZGV4
ID4gLTEpewogICAgICAgIHZhciBkb2lJbWFnZXMgPSBmaWd1cmVWaWV3ZXJbZG9p
SW5kZXhdLmltYWdlczsKICAgICAgICBkb2lJbWFnZXNbZG9pSW1hZ2VzLmxlbmd0
aF0gPSBpbWFnZXM7CiAgICAgICAgZmlndXJlVmlld2VyW2RvaUluZGV4XS5pbWFn
ZXMgPSBkb2lJbWFnZXM7CiAgICB9ZWxzZXsKICAgICAgICB2YXIgc2l6ZSA9IGZp
Z3VyZVZpZXdlci5sZW5ndGg7CiAgICAgICAgZmlndXJlVmlld2VyW3NpemVdPWZp
Z3VyZTsKICAgIH0KICAgIHdpbmRvdy5maWd1cmVWaWV3ZXIgPSBmaWd1cmVWaWV3
ZXI7Cn0KLy9hZGRlZCBieSBBdHlwb24KZnVuY3Rpb24gcHJlcGFyZVRodW1Gcm9t
Rm9ybShmb3JtKXsKICAgIGlmICghZm9ybSkgcmV0dXJuOwogICAgaWYgKCFmb3Jt
LmRvaSkgcmV0dXJuOwogICAgdmFyIGRvaUlucHV0cyA9IGZvcm0uZ2V0SW5wdXRz
KCdjaGVja2JveCcsJ2RvaScpOwogICAgdmFyIG1heD1kb2lJbnB1dHMubGVuZ3Ro
OwogICAgdmFyIGRvaSxpbnB1dCwgc3ViamVjdDsKCXZhciB0aHVtYnM9MDsKICAg
IGZvciAodmFyIGNvdW50PTA7IGNvdW50IDwgbWF4OyBjb3VudCsrKSB7CiAgICAg
ICAgLy9kZXRlcm1pbmUgaWYgdGhlIGFydGljbGUgaGFzIHRodW1ibmFpbHMKICAg
ICAgICBpbnB1dCA9ICQoZG9pSW5wdXRzW2NvdW50XSk7CiAgICAgICAgZG9pPSBp
bnB1dC52YWx1ZTsKICAgICAgICBpZiAoZ2V0RG9pRmlndXJlcyhkb2kpKXsKICAg
ICAgICAgICAgaW5wdXQucGFyZW50Tm9kZS5wYXJlbnROb2RlLmdldEVsZW1lbnRz
QnlUYWdOYW1lKCdkaXYnKVsxXS5zdHlsZS5kaXNwbGF5PSdibG9jayc7CgkJCS8v
IHRodW1icyB3aWxsIHJlbWFpbiAwIHVubGVzcyB0aGVyZSBhcmUgdGh1bWJuYWls
cyBvbiB0aGUgcGFnZQoJCQl0aHVtYnM9MTsKICAgICAgICB9CiAgICB9CgoJLy8g
RG8gbm90IGRpc3BsYXkgc2hvdy9oaWRlIGJ1dHRvbiBpZiB0aGVyZSBhcmVuJ3Qg
YW55IHRodW1ibmFpbHMgb24gdGhlIHBhZ2UKCWlmICh0aHVtYnM9PTApIHsKCQkk
KCdhcnRpY2xlQXJlYScpLnNlbGVjdCgnYS5zaG93VGh1bWJzJylbMF0uaGlkZSgp
OwoJCWlmICgkKCdhcnRpY2xlQXJlYScpLnNlbGVjdCgnYS5zaG93VGh1bWJzJylb
MV0pICQoJ2FydGljbGVBcmVhJykuc2VsZWN0KCdhLnNob3dUaHVtYnMnKVsxXS5o
aWRlKCk7Cgl9CgoJLy8gRXhjbHVkZSBFeHBsb3JlciBmcm9tIGxvYWRpbmcgdGhl
IHRodW1ibmFpbHMgYXQgcGFnZSBsb2FkCglpZiAoIVByb3RvdHlwZS5Ccm93c2Vy
LklFKSBvcGVuTXVsdGlUcmF5cyhmb3JtLmRvd24oJy5zaG93VGh1bWJzJykpOwoK
ICAgIHZhciB0b2NOYXYgPSAkKCd0b2NOYXYnKTsKICAgIGlmICghdG9jTmF2KSBy
ZXR1cm47CiAgICB2YXIgc3ViamVjdHMgPSAkJCgnZGl2LnN1YmplY3QnKTsKICAg
IGlmICghc3ViamVjdHMgfHwgc3ViamVjdHMubGVuZ3RoID09IDApIHJldHVybjsK
ICAgIHZhciB0b2NIdG1sID0gICI8aDQ+SW4gdGhpcyBpc3N1ZTo8L2g0PiA8dWw+
IjsKICAgIGZvciAodmFyIGNvdW50ID0gMDsgY291bnQgPCBzdWJqZWN0cy5sZW5n
dGg7IGNvdW50KyspewogICAgICAgc3ViamVjdCA9ICQoc3ViamVjdHNbY291bnRd
KTsKICAgICAgIHRvY0h0bWwgKz0gJzxsaT48YSBocmVmPSIjJyArIHN1YmplY3Qu
dXAoKS5pZCArJyI+JyArIHN1YmplY3QuaW5uZXJIVE1MICsgJzwvYT48L2xpPicK
ICAgIH0KICAgIHRvY0h0bWwgKz0gJzwvdWw+JzsKICAgIHRvY05hdi5pbm5lckhU
TUw9dG9jSHRtbDsKfQovL2F0eXBvbgpmdW5jdGlvbiBwcmVwYXJlVGh1bWJuYWls
cygpewogICAgdmFyIGZvcm0gPSAkKCd0b2NBcnRpY2xlcycpOwogICAgcHJlcGFy
ZVRodW1Gcm9tRm9ybShmb3JtKTsKfQovL2F0eXBvbgpmdW5jdGlvbiBwcmVwYXJl
VGh1bWJGcm9tVGFiKHRhYil7CiAgICB2YXIgZm9ybSA9ICQodGFiKS5kb3duKCdm
b3JtJyk7CiAgICBwcmVwYXJlVGh1bUZyb21Gb3JtKGZvcm0pOwp9CkV2ZW50Lm9i
c2VydmUod2luZG93LCAnbG9hZCcsIHByZXBhcmVUaHVtYm5haWxzKTsKCi8vIEF0
eXBvbiBKUwpmdW5jdGlvbiBoaWRlQW5kU2hvdyhoaWRlVGhpcywgc2hvd1RoaXMs
IGNzc0NsYXNzRm9yU2hvd24sIGhpZGVUYWIsIHNob3dUYWIpIHsKICAgIGhpZGVU
aGlzID0gJChoaWRlVGhpcyk7CiAgICBzaG93VGhpcyA9ICQoc2hvd1RoaXMpOwog
ICAgaWYgKGhpZGVUaGlzICYmIGhpZGVUaGlzLnN0eWxlLmRpc3BsYXkgIT0gJ25v
bmUnKSB7CiAgICAgICAgaWYgKGNzc0NsYXNzRm9yU2hvd24pIHsKICAgICAgICAg
ICAgJChoaWRlVGFiKS5yZW1vdmVDbGFzc05hbWUoY3NzQ2xhc3NGb3JTaG93bik7
CiAgICAgICAgfQogICAgICAgIEVmZmVjdC5GYWRlKGhpZGVUaGlzLCB7ZHVyYXRp
b246MC4zfSk7CiAgICB9CiAgICBpZiAoc2hvd1RoaXMgJiYgc2hvd1RoaXMuc3R5
bGUuZGlzcGxheSA9PSAnbm9uZScpIHsKICAgICAgICBpZiAoY3NzQ2xhc3NGb3JT
aG93bikgewogICAgICAgICAgICAkKHNob3dUYWIpLmFkZENsYXNzTmFtZShjc3ND
bGFzc0ZvclNob3duKTsKICAgICAgICB9CiAgICAgICAgRWZmZWN0LkFwcGVhcihz
aG93VGhpcywge2R1cmF0aW9uOjAuM30pOwogICAgfQp9CgpmdW5jdGlvbiB0b2dn
bGVEaXNwbGF5KGVsZW0pIHsKICAgIGVsZW0gPSAkKGVsZW0pOwoJaWYgKGVsZW0u
c3R5bGUuZGlzcGxheSA9PSAibm9uZSIpIHsKCQlFZmZlY3QuQmxpbmREb3duKGVs
ZW0sIHtkdXJhdGlvbjogMC4zfSk7Cgl9CgllbHNlIEVmZmVjdC5CbGluZFVwKGVs
ZW0sIHtkdXJhdGlvbjogMC4zfSk7Cn0KCmZ1bmN0aW9uIGpzb25mZWVkKGRhdGEp
IHsKICAgIHZhciBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZ2luRXJy
b3JNZXNzYWdlJyk7CiAgICBlLmlubmVySFRNTCA9IGRhdGEubXNnOwoKICAgIC8v
IFNldCBzb21lIGJhc2ljIG9wdGlvbnMgZm9yIHRoZSBjb29raWUKICAgIHZhciBv
cHRpb25zID0geyBleHBpcmVzOiAwLCBwYXRoOiAnLycsIGRvbWFpbjogJy5hY3Mu
b3JnJyB9OwoKICAgIC8vIFByZXNldCB0aGUgdmFsdWUgb2YgdGhlIGNvb2tpZQog
ICAgdmFyIHZhbHVlID0gbnVsbDsKCiAgICAvLyBJZiB0aGUgc2Vzc2lvbiB3YXMg
Y3JlYXRlZCwgc2V0IHRoZSBjb29raWUgdmFsdWUgdG8gdGhlIHNlc3Npb24gaWQK
ICAgIGlmIChkYXRhLnNlc3Npb25pZCkgewogICAgICAgIHZhbHVlID0gZGF0YS5z
ZXNzaW9uaWQ7CiAgICAgICAgLy8gQWN0dWFsbHkgY3JlYXRlIGhlIGNvb2tpZQog
ICAgICAgIGpRdWVyeS5jb29raWUoJ0VSSUdIVFMnLCB2YWx1ZSwgb3B0aW9ucyk7
CiAgICAgICAgd2luZG93LmxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3JlZGlyZWN0VXJpJykudmFsdWUKICAgIH0KfQpmdW5jdGlvbiBkb0xvZ2lu
KHNtSG9zdCkgewogICAgdmFyIHVzZXJuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50
KCQoJ2Fjc0lEJykudmFsdWUpOwogICAgdmFyIHBhc3N3b3JkID0gZW5jb2RlVVJJ
Q29tcG9uZW50KCQoJ3Bhc3N3b3JkJykudmFsdWUpOwogICAgdmFyIHVybCA9IHNt
SG9zdCArICcvcG9ydGFsL3NpZ25vbj91c2VybmFtZT0nICsgdXNlcm5hbWUgKyAn
JnBhc3N3b3JkPScgKyBwYXNzd29yZDsKICAgIGpRdWVyeS5hamF4KHsKICAgICAg
ICAgIHR5cGU6ICJHRVQiLAogICAgICAgICAgdXJsOiB1cmwsCiAgICAgICAgICBk
YXRhVHlwZTogInNjcmlwdCIKICAgIH0pOwogICAgcmV0dXJuIGZhbHNlOwp9Ci8v
QWRkZWQgYnkgQXR5cG9uOiBpZiB0aGVyZSBhcmUgZmV3ZXIgdGhhbiA1IGl0ZW1z
IGluIGpvdXJuYWxIb21lLCBzZXQgcmFuZ2UuCmZ1bmN0aW9uIHNldFJhbmdlKGZv
Y3VzTGlzdCl7CiAgICB2YXIgYXJ0aWNsZXMgPSAkKGZvY3VzTGlzdCkuZ2V0RWxl
bWVudHNCeUNsYXNzTmFtZSgnYXJ0aWNsZUJveCcpOwogICAgdmFyIHJhbmdlID0g
JChmb2N1c0xpc3QpLmRvd24oJ2Rpdi5yYW5nZScpOwogICAgdmFyIHNpemUgPSBh
cnRpY2xlcy5sZW5ndGg7CiAgICBpZiAoc2l6ZSA8IDIpewogICAgICAgIHJhbmdl
LnN0eWxlLmRpc3BsYXk9J25vbmUnOwogICAgICAgIHJlbW92ZVZpZXdBbGxMaW5r
cyhmb2N1c0xpc3QpOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmIChzaXpl
IDwgNSl7CiAgICAgICAgcmFuZ2UuaW5uZXJIVE1MPSdOb3cgc2hvd2luZyAxJm5k
YXNoOycgKyBzaXplOwogICAgICAgIHJlbW92ZVZpZXdBbGxMaW5rcyhmb2N1c0xp
c3QpOwogICAgfQp9Ci8vQWRkZWQgYnkgQXR5cG9uOiBpZiB0aGVyZSBhcmUgZmV3
ZXIgdGhhbiA1IGl0ZW1zIGluIGpvdXJuYWxIb21lLCByZW1vdmUgIlZpZXcgQWxs
IiBsaW5rcwpmdW5jdGlvbiByZW1vdmVWaWV3QWxsTGlua3MoZm9jdXNMaXN0KXsK
ICAgICQoZm9jdXNMaXN0KS5kb3duKCdkaXYudmlld0FsbCcpLnN0eWxlLmRpc3Bs
YXk9J25vbmUnOwogICAgJChmb2N1c0xpc3QpLmRvd24oJ2Rpdi52aWV3QWxsTGlu
aycpLnN0eWxlLmRpc3BsYXk9J25vbmUnOwp9CgovLyBBbGV4IEtpbTogZnVuY3Rp
b24gdGhhdCB3ZSdsbCBiZSB1c2luZyBvbiBzdGF0aWMgcGFnZXMKZnVuY3Rpb24g
bG9hZEF1ZGlvKGxpbmspIHsKICAgIHZhciB3cmFwcGVyPSQobGluaykucGFyZW50
Tm9kZS5wYXJlbnROb2RlOwogICAgdmFyIGxvYWRMaW5rPSQod3JhcHBlcikuc2Vs
ZWN0KCdkaXYuYnV0dG9uJylbMF07CiAgICB2YXIgYm94PSQod3JhcHBlcikuc2Vs
ZWN0KCdkaXYuYXVkaW9Cb3gnKVswXTsKCWlmICgkKHdyYXBwZXIpLnNlbGVjdCgn
ZGl2LmluZm8nKVswXSkgJCh3cmFwcGVyKS5zZWxlY3QoJ2Rpdi5pbmZvJylbMF0u
c3R5bGUuZGlzcGxheT0ibm9uZSI7CiAgICBsb2FkTGluay5zdHlsZS5kaXNwbGF5
PSJub25lIjsKICAgIGJveC5zdHlsZS5kaXNwbGF5PSJibG9jayI7Cn0=
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=favicon.ico
Content-Type: image/x-icon; name=favicon.ico
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/favicon.ico
Content-Transfer-Encoding: Base64
AAABAAIAEBAAAAEACABoBQAAJgAAACAgAAABAAgAqAgAAI4FAAAoAAAAEAAAACAA
AAABAAgAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHkAAAB9AAAAfwAAAHsZ
AAB3LwYAbjoeAHM3GgB/QBoAQ0s/AH9KLQBkTzwAbVM/AHlSOQB6VTsANWdpADpy
dgBSUEMAWmVdAF1oXwBWbWwASXRqAEVwcABIeHoAggAAAIMAAACEAAAAjgAAAJUA
AACbAAAAmgwAAJQXAACXGQAAowAAAKcCAAC1BwAAvgAAALMMAACmEwAAqBMAAIgi
AACUIgAAkSUAAJs2FQCbPhkAsiQAAKsxAACvMAAA1AQAAMQUAADEHAAAjEQZAINO
MwA6eIEAAHu3ADaDkgAAi6oAH4yjABiOpQARk68AGpm1AByYtAAqjqIALJCjAACt
0QAAhP8AAJL/AACT/wAAl/8AAJn/AACa/wAAnP8AAJ//AACg/wAAov8AAKP/AACk
/wAApf8AAKb/AACp/wAAqv8AAKv/AACu/wAAr/8AALfyAACx/wAAsv8AALP/AAC0
/wAAtf8AALb/AAC9/wAAwv8AAMb/ADHY/wBxz9wAjtnhAJHY4QCe/v8AwMDAAHcA
AAACAAAAyAWRfJggBgAQFo4AUQWRfHgTBgBtBZF8AAAAAD0EkXwAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAgAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAzjORfOv1AABgE44AAAAGABQYjgAY7pB8wECRfP////+7QJF8jtYBAEUA
AABUFY4AgAAQwBQYjgAY7pB8cAWRfP////8AAAAAPQSRfIgWjgB1C4F8twAAAAEA
AAACAAAABBiOABgAAAAAAAAAcBaOAEIAAAAAAAAAVBaOAAAAAAAAAAAAAAAAAAwA
AAACAAAAAQGQfADs/X9mAAAAAAAAAAMAAABuABoCoCAGAAAAAACgIAYABQAAAN/i
gHysFo4ATxqAfKgBAAAAAADAAAAAAAAAAAACAAAAgAAAAAAAAADsF44AP2VLAFAi
+QAAAADAAAAAAOAXjgACAAAAgAAAAAAAAACw708A5PWoAAIAAABDOlxEb2N1bWVu
dHMgYW5kBwAAAHRpbmdzXHJ5Yzk2XERlc2t0b3BcZmF2aWNvbi5pY28A2YvUdwDg
/X90F44AAAAAAGAL+QAqiNR3/+mQfA4QgXyoAQAAAAAAAAAAAAAAAAAAaBeOAGAL
+QAmAAAAAAAAAC4QgXwmAAAABBiOAAIAAAAwAAAAJgAAAAAAAAAmAAAAVBeOACqI
1HcUGI4A85mDfDgQgXz/////LhCBfNZlSwCoAQAAYAv5ACYAAAC4F44AAAAAAAAA
AAAAACsEGgAAAAAAAAAAAAAAACsdVA8bAAAAAAAAAAAAACscEVwMJ2QAAAAAAAAA
ACsDBxI3FAopAQAAAAAAACsYJjU+ND8XLSoDAAAAACsZOBYuPCw9LxM5BgMAACsC
KF0QMQ1ADjI6OwsgAQADISMFHiQIFTMwIAkfJSIYYklLAAAAV1ZYWgAAAFtIYgBe
RUpOUFVZWlZQTUtHXgAAAGBES09SU1NST0tFYAAAAAAAYUVMT1FRT0xGYQAAAAAA
AABfQ0dKSEZCXwAAAAAAAAAAAAAAQgAAAAAAAAAAAAAAAAAAAEE2YAAAAAAAAAAA
AAAAAABgAAAAAAAAAAD8fwAA+D8AAPAfAADgDwAAwAcAAIADAAAAAQAAAAAAABw4
AACAAQAAwAMAAOAHAADwDwAA/v8AAP4/AAD+/wAAKAAAACAAAABAAAAAAQAIAAAA
AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+a1sAf2pcAHttXwB+bFwAe25gAHlv
YgBvd28Ad3BkAHhwYwB8cWQAf3JlAHVyaABydGsAcXVsAHN4bwBteXEAa3l3AGl7
dgBvfXYAZn56AHFzcQCbUzUAmlM2AJlUNwCaVDYAm1Q2AJxVNwCWVzwAmVU4AJxV
OACcVzkAnVc5AJ5ZPACeWj0AoFw/AI9cRACLX0sAjF9IAJBbQwCRXEMAkF1EAJ9d
QACgXEAAoV1AAKJfQwCiX0QAjWJMAIhkTwCUZEsAhmNTAIdkUACDZVcAgGpZAKJg
RACkY0cApWVKAGKBfwA+nKwAOpyxADmfsQAvpr0AL6a+ADWitgA4oLMAM6O5ADSh
uQBchocAXIOKAFuGiABah4kAV4mNAFiJjABPj5YAVYuQAFSLkQBSjZMAUY2UAE6Q
mQBNkJoASZSfAGGCgABGlKQAQZqpAB2y0wAatdcAJ6zHACWtyQAlrsoAILDPAAC8
+gAAv/4AAMH/AADD/wAAxf8AAMb/AADI/wAAyf8AAM3/AADO/wANzv8AD87/ABfO
/wAezf8AANH/AADT/wAA1P8AANX/AADX/wAI0P8ADND/AADY/wAA2v8AANz/AADe
/wAmzP8AMd7/AADm/wAA5/8ABeX/AAjj/wAA6f8AAun/AADq/wAW5/8AHuf/ABvq
/wAC8f8AAPX/AA3x/wAA+/8AAP//ACbp/wA35v8AN///AD///wBIxf8AV8H/AFf/
/wBb//8AwMDAAH9qWgAUGI4AGO6QfMBAkXz/////u0CRfI7WAQBFAAAAVBWOAIAA
EMAUGI4AGO6QfHAFkXz/////AAAAAD0EkXyIFo4AdQuBfLcAAAABAAAAAgAAAAQY
jgAYAAAAAAAAAHAWjgBCAAAAAAAAAFQWjgAAAAAAAAAAAAAAAAAMAAAAAgAAAAEB
kHwA7P1/ZgAAAAAAAAADAAAAbgAaAqAgBgAAAAAAoCAGAAUAAADf4oB8rBaOAE8a
gHyoAQAAAAAAwAAAAAAAAAAAAgAAAIAAAAAAAAAA7BeOAD9lSwBQIvkAAAAAwAAA
AADgF44AAgAAAIAAAAAAAAAAsO9PAOT1qAACAAAAQzpcRG9jdW1lbnRzIGFuZAcA
AAB0aW5nc1xyeWM5NlxEZXNrdG9wXGZhdmljb24uaWNvANmL1HcA4P1/dBeOAAAA
AABgC/kAKojUd//pkHwOEIF8qAEAAAAAAAAAAAAAAAAAAGgXjgBgC/kAJgAAAAAA
AAAuEIF8JgAAAAQYjgACAAAAMAAAACYAAAAAAAAAJgAAAFQXjgAqiNR3FBiOAPOZ
g3w4EIF8/////y4QgXzWZUsAqAEAAGAL+QAmAAAAuBeOAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADY2AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAA2FhY2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAANhYWFio2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYWGAYJHRY2AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAA2FhYUOlVKFhY2AAAAAAAAAAAAAAAAAAAAAAAAAAAA
NiwWFgdBWBIWFiI2AAAAAAAAAAAAAAAAAAAAAAAAADY3IBYWDzxONRYWFiM2AAAA
AAAAAAAAAAAAAAAAAAA2OBYgKTQKORENAykWFjY2AAAAAAAAAAAAAAAAAAAANjgW
FhZLQlBHT1A9ORYWFi42AAAAAAAAAAAAAAAAADYtFhYWFg5AJiQmJkABFhYWFis2
AAAAAAAAAAAAAAA2HjNDEEkxGU1UKjBUURcWDFNFKBs2AAAAAAAAAAAANhYWJVJV
PycWBVUFFVUFFhZZTEiNFhY2AAAAAAAAADYWFhYfE1ZEHBYWMzo6MxYWKlcEAjIW
FhY2AAAAAAA2FhYWFhYIPgsaFioqOkwzKhYWRlU7MhYWFhY2AAAANhYWFhYWFhYW
FhYWMzpMOTozFhYdLyEWFhYWFhY2ADYqKioqKioqKioqKioqKhYqFioqKioqKioq
KioqKio2AIJaZmtniAAAgWheAFpaWlpaWgBrWnkAAImKclprWmsAAGtaWlpeaWiK
enBra3paWnpmiWtweomDamprZmtrAAAAAIlah2tza2hih3paWmaJWlpaWm1iamNr
Xm1aawAAAAAAAHBpb2FsaWteZVprWlxebVyCa4lqbmpoYHEAAAAAAAAAAItygoB7
aGtqWlprd2haa1ppa2praWh4AAAAAAAAAAAAAH92dXBpXWpaWmWJWlpaWl9kamhq
fQAAAAAAAAAAAAAAAIZ7dWpdWlpaWlpaWlpaXWlqa34AAAAAAAAAAAAAAAAAAIVq
WlpaWlpaWlpqWlpba2uEAAAAAAAAAAAAAAAAAAAAAHpaWlpaWlpaWmpaWlpdfAAA
AAAAAAAAAAAAAAAAAAAAAABeAFptWloAAFpaXnQAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAHpaWgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFpaWlprAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAWlprawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAACJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA///////+f////D////gf///wD///4Af//8AD//+AAf//AAD//gAAf/wA
AD/4AAAf8AAAD+AAAAfAAAADgAAAAQAAAACBiBGAwAAAAeAAAAPwAAAH+AAAD/wA
AB/+AAA//wAAf/+AAP//6GH///x////+D////h////7///////8=
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=atypon-print.css
Content-Type: text/css; charset=UTF-8; name=atypon-print.css
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/css/atypon-print.css
Content-Transfer-Encoding: 8bit
body, #container {
width: 100%;
}
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=acspubslogo.gif
Content-Type: image/gif; name=acspubslogo.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/acspubslogo.gif
Content-Transfer-Encoding: Base64
R0lGODlh2AApAPf6AP///yBai/n7/MbU4YemwU17ohdThvf5+8nX4xRQhP7+/8jX
4/3+/vr8/RJPgxZShRNQhDdqlyFai8fV4vz9/pm0yuPq8MPS4BFOg9fi6vT3+UFy
nFyGqneauPH1+C5kklaBp+Lp8MTT4JSvx/X3+qi/0vv8/Sdejj5wm+zx9R5YihlV
h7TH2O7y9qS7z1WBpsHR3zZqlsrY5Ju1y+Hp7+ju89Ld51F+pEt6ofD098zZ5Ul4
oPb4+jhsmFmEqZeyyUNznRpViC1jkl2Hq+Do7yNcjClhkFuGqubs8qrA09rk7Ke+
0RtWiDlsmJCtxR1Xid/n7vj6/ER0nVB9pK3C1Jq0y9Dc5mGKrb/Q3u/z997n7o6r
xDNolW+UtM3a5U98o5GtxtHd5yZejrzN3B9Ziihgj9bg6UZ1niJbjMfW4mSMrliD
qOnv9Eh4oOXr8dnj68XU4TBlk+3y9jdrl6e90c/b5o2rxLbJ2dzl7TRolXibucvZ
5IinwSRcjX6fvG2Ts9vk7Ep5oTptmZOvx8DQ3naZt6vB0+Tr8YupwxVRhRhUh1N/
pdfh6rrM2/L1+FeDqJizyr3O3dXg6X+gvJ22zIOjvlJ/pWqRsidfj7vN3Iyqw4qo
wkV1nuft8iphkOrw9L7P3bDE1t3m7U58o+fu8563zXqdurfJ2TVplnKWtc7b5j9x
m6O7z5KuxoWkv6zC1F6Iq2ePsFSApixjkbXI2LnL23udutji63OXtkJznI+sxYal
wPP2+WuRsleCp7LG12WNr2KKrWySs6m/0qC4zTJnlBxXiXWYt5axyGaNr5WwyKW8
0GCJrDxvmkd2ny9lk4Ghva7D1Stika/E1dTf6IemwNPe6IChvcLS30x6olqFqZ+4
zbPG1ztumevw9Zy2zIKivrjL2miPsWOLrnmcuaK6zmmQsT1vmiVdjTFmlKG5zkd3
n2eOsKa90Hyeu7fK2nSYtnCVtISkv3GWtbHF1omowl+IrH2fu0Bxm26UtA9NggAA
AAAAAAAAAAAAAAAAACH5BAEAAPoALAAAAADYACkAAAj/APUJHEiwIMEP5aRsUGGw
ocOHECNKnEjRoYMYQiBezFixo8ePICNKAQBADrYXTEI+TJCAIoQgxlo6VBEggIGI
EFiy/BiAxwWIPX8KxHdNjMqCGDAUDKYn0dGnEJsdAKCAJAyoBGFlyDAJYiJ2LBi5
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
kMFI3MRqGRAAOw==
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=title.gif
Content-Type: image/gif; name=title.gif
Content-Location: http://pubs.acs.org/appl/literatum/publisher/achs/journals/covergifs/jmcmar/title.gif
Content-Transfer-Encoding: Base64
R0lGODlhjAFLAPf+AP79/ZsENv37/PLf5Z0JOpkBNMRsiZoDNfjt8f35+v78/fv2
+KEVRMFjgqkoU9ecsJwHOZsFN71Zevry9ZoCNawvWcBige/X3682Xv36+8VvjO/Y
4KUfTM+GnrA5YfDZ4enH0tGNpMRrieW/zKQbSaorVeG1xLE9ZN2puvXm6+K3xfDa
4fPg5rREafz3+Z8PP5sGOOvO2Pz4+fXn7PTk6aYgTbpSdackULE7Yvnw850KO8d0
kO/W3uGzwurL1efDz58OPsBhgd2qu/Pi6PHb4vv09tukttaYrdOQps6EnZ0LPJ4N
Pd2rvLE8Y+3R2qUeS7xXebVHbKYhTaUdSpwIObI/ZbxYeb1ae+CxweG0w+W+y8Vt
iq41XeW9yvHc4+fE0J8QQPbo7ffr76IWRaEUQ+rK1awwWaMYRtKPpe3S26stV54M
Pfnx9NGLotqita84YLdKbujG0a83X/fs8Prz9evM1rtWeNebr96tvdult+S8yfbp
7fnv8ubBzffq7vTj6b1bfKASQeO4xqMZR75dfbNAZsl5lNyouaknUtCKoassVqMa
SKQcSeS7yevN1+nJ1MFlhNearqETQsp7lbZJbe7U3a40XaIXRaoqVfPh58dzj/v1
98JnhdidsdSUqenI09WVqrA6YcFkg7hNcb5cfcJmhd6svd+wwNumuNSTqbRDab9f
f+K2xa0yW8Nph+zP2eCywe3T3Ml3ktaZrb9ggMl4k60xWqkpVMVui9WWq/Xl6sZx
jbVFat+vv6ARQd+uvvHd5O7V3acjT7VGa+jF0c6FnaciTrI+Zcp6lct+mKgmUfju
8cdyjtmgs8h1kct8lr9eftCJoc2Cm7lPcrlRdLNBZ8ZwjbZIbbdMcMx/mfLe5cyA
mdGMo9mhtOO6yLdLb6glUefCzq0zXLhOcbpTddynuasuWLNCaLtVd7tUduO5x8Nq
iNKOpct9l9iesdWXrLlQc9qjtch2kcNohtORp+bAzdOSqM2Bmtmfss2DnOzQ2c+H
n8+IoJkAM////wAAACH5BAEAAP4ALAAAAACMAUsAAAj/AP0JHEiwoMGDCBMqXMiw
ocOHECMmnGPlmo0hEgl+gAJkR8aPIEOKHEmypMmTKFMuVNCsTTQQKkma6WdsAcgh
Z/r1Qxezp8+fQIMKHRpylE4hRCFi6IdIAEhNW+rkS5a0qtWrWLNihaLThNaESx04
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
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=cart2.gif
Content-Type: image/gif; name=cart2.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/cart2.gif
Content-Transfer-Encoding: Base64
R0lGODlhDwALAIABADNmmQAAACH5BAEAAAEALAAAAAAPAAsAAAIehIOpCtHvYouy
UojRvHbT9SXGOILmqS2eeGitCicFADs=
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=cover.gif
Content-Type: image/gif; name=cover.gif
Content-Location: http://pubs.acs.org/appl/literatum/publisher/achs/journals/covergifs/jmcmar/2008/jmcmar.2008.51.issue-6/cover.gif
Content-Transfer-Encoding: Base64
R0lGODlhcwCYAPcAACY1Ki1JOg9SURNvby1ZVCthXC1wbipeYXchNGokMFspJk5O
M3FnMmpgHFBYS1dmVVFzbXZ4V2tuT2Z2aWh7dHN6ZnJ1bmxRSUJ6hiiBe32CWWuC
eXSFenqFaVuMbXrPZ3KXLxaOjRWzsCiYlTCOjC+jnSa5tzepqC+vriiboTe9whe8
2DDAvDrFxhfGwk2Rj1GdpVOjnFi3uEmtrneLhHyTi3mSiHmZk2iPjHKkmXCvr3eX
pE67xGy8xFHDvG3DvUfDxlfFylnK0k/M02bGymvL1GXK1HbHynXM13PR2nPT50DL
4IchOZgiPYswLqslK70DVqoiQrMiRbsiR5whQIp2L4NkJpFVUYZ4TJFybKtwbaxU
Ucw5Ou4iKcILUsMUTcUbTMgdScMSUMUZUMUjRsYiSskiRcgjSsorRsw2Q9IiTM81
RNJIO9ZaNdZWNtZRMd1mJtlmMt12KuJdJuNnJ+F6JuJ6HtBHRt1gYKGeNYeGWJOL
UoWJZYOKeIiVeZOUbJeje6uXUqiScbGtU7CrcZG6SLTLVqHWbdW1KuiZHeSEHuSJ
I+SDJuaUIuuoGe2zFfG7EvGzEtufJ86yUta0ZvXHDPnXB/PHEeXDK+zIMfffPfzo
Av78AP3zAODMM8vQVs3Va9bjeNblZ+/KWe7Sau/rauzqUrLCGYaViYSbk4ialY6W
i4aZpouim4akmpKknZanmJWmiompopOloZOqo5qrpZqrqJuzq5e0qZq4tI2xsq6x
jqSsqKKzram1rKS6s6u6tKe3tLK8uLO1qLGNh625xpu2w4/DuarDurPCvbjFvLjI
p7TaiofT2ZDO0IzZ56nJxbrFwrzKxLzNybXIw7rSy7nY1a/N1bHY4rTk563i4caz
k8vNj8jMtdnqiOnuiPLzr+HirMHNycTLxsPSzMjUy8Ta08vb1MjY1dPb187Tz8rZ
58zi28ni2dLi3Njj29vlx8vo5drq5Nzt6dXn4trw7+rr2OTr6OLx7evx7uTz8er1
8+v49/b7+fDy7OfU0CH5BAAAAAAALAAAAABzAJgAAAj+AM8IHEjwTJmDBguWKaiQ
ocOHECMSnCJw4UCLEjMmzLgQo8aKHSF6FPmx5EeKJi8SHAkR5UaJLC8ijBjzZcqb
N2tW3JmS4kycB38y1AnTJs6jOMd8VEoS6VCTSolKJci0YdOHRFUWxTizo1CnEKs6
ZDpV40ixEcdklekULZmiJcM8jbuypEWuYvLqFfNF75e/XsR46bt3zN7DewkjFjMG
yhTDeqH87auYsmLIe6Hk/StZMd/CfjdDAVPRjMo1i1KrXs26dWpGklzLnr2IEe3X
qm3PToR7tW7XknTbTuSGtEM0bdy0Sb68eXPlz5m3udMmDnQ30Jdn157czZ04y7/+
Ox9Pfvwd8eXTl6c+ng2YMqbPvB34d8yYv2C+5J9sX//9/PnZZ99++uE32YFgMDbG
YwISeKCBD+LH4BgO7mdhhPolOCCCHo0U1BnxpRSGcTwpVNNaSMWE4lxYFRTiQWrI
JZAaZ4yhRohgJfSTh1rB1aJCOFplkRllRDHjkSBKMYUUakwRRRRSRDlfQWhYVWJd
Q4XkEI8bIaRiQ1MOFCZBaiBgZgIIMGEmE2UikMAZU7iZQAIKNEGjQUHBp1KeWlUZ
IhoIBVkGoHp6WeVKaMQX34cEVelRkBAx0UQTVEjaRBR2RnmpFJM+2QSTOZlol4dr
ITTmQ5A+pMaqrJ5B46v+rrK6KpZA/cjSXQPFR4ZHh9Kk55VGDaSkFGRMUQYZUcrn
pHxSRPGWscFqVNVXWzY1k2kvCjTfW/P1mhITapqJAKZNTHFpuOJi6pJNaPVoZV1f
PpSofF1GlG21A91ZJRlEklkXpNS6G61dGoUYJKQ4hrguQanOZ0bCWK2IL1LvGWWc
aWCYMYaMFYGhlkCmcSUxw9qmmKPAZ6RxBolncEwQGHHcQSIYbMRR8ZWMnmwTl2Zx
dGxBaUACBhpokNitQFx4kUgb+hEtxiJshPGzzrmeytFVKD80HxhrOOJGHYzEIUcc
cTgiRyOJNJJGInAw0gYUbKTmBiRr4FTsFGRYzWL+tDp1+Gi0Ls2UhiNeM+III3IY
PoUjdzjShmpxQIF4HIYfOrKaTYCLgN45dgRoaQkJ+iMYaTzCBiOMsOFII3Es8jQb
jSySCOp3jHFHbXc08vmPJIfIMsF7i5qzXTSC4UYcXhQ9tEBqlUHa8kEZ9xiuIGZd
vas6S5WqkBBJvZBYxmnJlkBgSA3sR4qiqmq9NA2UcdVgcD5QlWDULx9GHpN2q1F3
CtQrWQNpF0P6BzIyERBPJLEI6RjChayN4RKXOEMiKoGGqpBhDG2wRBsAiJH4GG8T
ixCgRMgQhSUJREkCMZJWFuIkKJVwJ0TBGBc60QYxCEQMbOiEe8JyiU2MwRH+m0iD
+ZhXh07EoXnVmxrz2MCJRqxLhAUZw5zQRCkmoGlOUUgTE6ggriacCQHoOwP9mAiJ
LxjkC47gRBzMmD8zniEvXqiEJc6An5XZhzH5AwMUIMNGPuKQE67DWo3ECCcnUcFY
TxpWs4Y1hSkwwUmNRGHP3hiHTnTCDXxhwyY6IQcxwKwRjWCDJ+vgiDjIEWZySMMY
0rAItLGBDXJ4JdTk4Ag4mJGWXvtjI2y4vYFhL1/Mi9Uv/aUtFJFBDIxIxCYiMQUx
8GYTiYBCIzqBhkV04gx14ATiNlEJMUCCE2VIwyYegQY5LEIOnEgOJy6xCEtw4g5u
IM4lOpEGJjLCCx7+kR8CGeItQfryImJwBBseocM7PGKGjgADN8sQB23KsS+W6OYj
NiFBToiyfnDghBuYuAgoNFQOXoCC5DSaBm2KYV69/Mj+1OcrEDkPEvXkxCMe4QYy
bAISd+CmORcRB27q5xKW+MJEzzDPNJBGDA1lwxs4IQcotIETcAgDKKfphpIqwo1U
Q0upsoKGS6BBDJHgBCSSZwlLiLMSUAjpGXz6hVMCMQxpvKgX0NkGJja1oWXrxBjc
YFGOiqFfJWsJrYBHJerxBIcUFcNTmXYGd6KhEZyoQxriUFE2uKETmwDDN8/AV5iy
YQ10XWpHsxmHHnIhjXXlhCP+apKRzW9gotP+Ec0aIZcwyKEihkvDFBhxicMJxBGQ
qIMcEkGGOiRiDWJwwyMg4Qg0vEGgjYuDYgXKBuYqN5SJsBlXJsI7qmUkPwYJgxvD
kNaVeRK84s0PY2pkwzfyxQv1w6MnV5Yh/+jnjWZ07UmwVCqGxMcyjDleP3NVQLlg
JAxrcEPLArvgHRXTv5OMcAAH6U8cNoJwiShDXKOyqCnJ6H1vEQNkGcut+n3OIt6D
oXdxghLxlewLi1AtFwxqTnrar2NMMc7M6OgGtT1vZWyohHQHIpff/cp651sxQ5Cq
Wi9saJpVUiUaRnMHNLgxPyoTQzjl0pf8lEFmI91gGEZEvzFZRJ8meeL+u6qlwEro
8AuHciYILbEJRsDtEo24hBzAcIlIKBMSbuihI7zQzleuDtATNR0keHOJOFhCumR4
hFEnhjOGQDElHimfGeiMBo45sxOMSENZG3sJKKBT1JuomVjRkEYuoPMOlehoG2xr
0S/QmZ1p6AQkPPqI9ro0imtOsj8h8hYwcIHOk75hIugJhYm2YZxxSIQaK1HqktoZ
nbDkROlkygYoFJENtq6EHgNKzUa4wYxhSKmtlKwSPte6I16YZhq88AgNduIRd2BD
GtBgibHeQZumtmgR14CGb9ITnVywdRnpyMTV6a+AfKK0kmOiWLEmSMtoWHbSImFW
bobUjP32Qg7+R6vtbLJhyv92w6mhwE0bkgEMlVCjG6dGpL4Fe7AtrRZSN6FnOUBC
dRYVQyU2EYaGPuJsa+C5yAEJhRjHTaOHk8MlwPDURIg6ggL5ghyI7jIkH2Wr4sOI
ldFAuTi4p55Fe2UZvpAGOchhDWF45RTqKUQunHwNbAjn2JTXhlS+0gxcjqcX6FXA
r7PbIXy5r3izzpQw8KXIFbvvyvJn3i+YzzD1I1FAd4ijmiwsLeN7yMJiEqYOFRDN
Aqt5j96CQUhMK4lg8Vv2FmIafkXE9g7ZFe3ptSv/mWFMWj83Q1Av4c6F5ET0Et/v
eeeVhpSBQoS8nsCi4rP+yWVKGHl9Saz+BqkwlF5M0sf+nRzmlbcca0qoH4mBqUWU
rt/e/QR5y/UBT2xEdSlgFfm+tMbg5C8EZkGH8QX3oRn3oSB3ZBgCUiAY8iCJlxfN
lHgHMgWT4UmdgSGakRf3YRl3VB9iAAUyok8YMQXVQQdzUIJ0EAcnSAcqCAdzQAdw
wIJwcIIoSDYtWII2OAcvaIMuiIMm2IIkaINx0IM3SIIsiINFWIM2yIJBiIM/eIRz
sIRwcAcGoW4FcQmG8AlYWAiDkAdb+AEfMAigAAqGMAmGMAiDcAiFUAh5UAiGIIaH
EIaHcAihcAht+A2hYAhtCAqhsIeg8AGHwAzMEArM4A2EGIfMEIf+H1AIooCFotCI
i7iIhiAKoSCJkmgIdOgJeXiFofAJeVAK32AKi3Az+FcQmLADrKALunAAB2AAqygC
JLABqKgLrLADNUACKIACJIABEAADOrADOqALx0AEPaADp2gM8WANrHCKsuAM13AN
0JACKqAE0qgEz/AMM8AD07gEIYABwDAMy4AMuYALtQALsbAKqrAOzUgNxTAMOrAC
OLAKtZALxmAMrHANq1AB9VAP4aAIHxNMaYEGmKAKsmALtlALHAABDzACImABE5AK
tjALqqAKM5ABBfACJ0ACHgABOLADvqgDOXADtBAMwEAL5kAOswAMv0ALroAMyBAN
vCADSKD+BElQjTDQA89AjUlAAgUAC7sQC7AAC7gADD0JDN2gDNFQDCwJCzgQAgbA
C7zQC7zwkK9wDlkACPGwDuEQSF43EIigCrNgC7dwC7awCjggAjiAChRAAeaoCqtg
AAIQAARwAi8wlzigkS+AAy8QA7ogC8IAC9FADq0ADdWADLJAC8hADbEgA0VgBEmg
BDBQkz3QAzBgAAaQA76wCq2AC9AgDbuwC+OQDdigDc1QBEAgAiEwABDAC8AglgSp
CsAQDxogCPSwDt5QB76mEemGCa0wC7UglrewCihQAqqQCjawARTAAajACqlAAgMA
AAaAAi9AAjEwAznQB6pwAxyQlz/+oArDQA6wcJjIcAy0EJSAMANDQARJoAMvAAPR
iQEvcAPIIA2owAGuQA3msAu1oA1EMANzaQAQ8J8UAAvCAAy2wAtf+QqvIA3o8AeC
cA5YqQhigHvqFgZcgAi7WQu9cAu+oAst8AKvkAqpwAFpaQEUkJwoEAIE8AIlMJcz
MAMycAOrsAo0wAExUAIxIA0sGZ5JiQt+kAMtIARG8ALKQA7UMA3TMA7kQA7IwAF+
AAi7wA05IAMDUAASEAEV0AcVkKVP6ZS1YKCvoAq9oKCxQAnVgA61+QVWsxBjkpuu
MAu0cAu94AtHcAI2UAuz4AqpsAEiSqI0sAonIAIisKIlcAL+F4kCMrADqEADsGAD
IxAE1ZALt/Cd4WkLqTAM5jkDNVAO0hAN0TAN5FAN1UANfsABgIALOmAABGAD3EAM
q4ClFpAKt8ALtUCQXsoKqlAM4yAOvgAK5WANtXmbGZFuiNCms9ALwfALROChr0AL
X0oDG0ADFMCnFhADPsACLBAEQNoDOCADQtADujAOvgALRfAM5eCTx5ALyIALsMCO
uKgDytALwuCpoFoN5MALgPADJTAAG/Ckq+AHfdABq+ALwRCVBTkLEPkKqwAM4zAO
RxkO3UCbdtBepzI8FNqVrGALvtALuRAELyAMAkkLqkADzqoKHMCnfeAKMuACQFoE
RXD+BOB4BIx5BL7gDM9gD8fgCuOJC7eAC72ADCdgAIoJDOWADkaaDNNgDc4gBCng
AbHwpH7gB6jQB7VQDMHAmgaLoKuQnMnAqeMwDeEAD9cwCRAKMrfiEbmJCjUQljMr
AzjQDbYQkamQqDRgAaqAlhxQA6oACzHQAkhABItZBNUgDsugAz7gAzPgDOSgDMDQ
CrAwnrkQC8iAAwZwAkagBM5ADcKADM5wBEGAAkKgA4SwC6AACKjQqrxADcCQobM6
CwgakasgDLAbDeJADuXgDYJwCmPrYtFiBoiAt3A6szOwA8pwCwiaCgjrrBTAliLr
Cq/ACygQBEnAskZgBEegA7/+KAM+8Lw/4AyyYLywcAyxgAu4YAAlYARIgATNgARA
0AK3GAO4wA7K0JOoMJ+xQA3QkLoF27pZywsDKgzFoA7joA7fgAWDYAdYBX/+pZuq
YAvG6gwzIAvAIA65YLwPmYw0AKa20Ao34Aq3kAsnwAPRu5hGMAMkEARBULg+MARD
IARE8APb+wNEgAQGkAFCcL7N8AxIcATW0A27AA/xUA6EAAiAALXcsAu/0AsESQsG
y7rJyQsiKQyyiw7qQAiEAAoRa364GQaYgAtg2gu94MCycA70EAw2wJu0AAutgArT
4A7sQA/UcAsseQwlAARJEMJF8AIO4AFzSQKD6gJAYAT+IsyYMUAAPIAESYC+SUC9
ObAM7MANzEDFscABhMAMsfALYkkLtTCcWTABWAALAgsMnSoO8TAMDEAIebAIXzB+
GfEFXIAJvhmn0MADxyAP7IALNVALtUALukwL1aAPvpwP86oMyFACKHAE0hukBPAA
//kADvACJiACLADI02sEBkACh3y+SSAEPmACKPADuFDEuyDEoZuxtrDLNPAAE2AB
ElAF/CsM0kAO6wAPuxABgXDKqSxxRIYJv3AO1GALwWAMPKAD9yAOtkADryCOcEwO
8rAPDL0P7jCk1WAO1TADIhAESADISSADG2ADroCnvMCOxOwD00wEBSADddy3QcD+
AsFJAiFwAjpwCOKMDJa8yxzwABRgC8IQDICABbxgtONACZNACuEwDHlQB260KAND
BlpcDWJMDr1QDUUgA+9QtalAA8nADunQxviwD/zQ1fswu6BaDurwA9C8mECq0aiA
pzXAC7dACzkwAiUQBIzJAwbwA4ec0iZQAiNAApSZASWQA6GbC79QCwjKAQ5AAbMw
DAMbDHtQBdcwDpPwCaMQCuHAC0WNVR8RBplAD+4gxugAD81gAuaADCNZA79AD/Lw
Du6AD/rQD/zQD/1wD8pQDmGdDtBgAiYgBEVABCP8AqgwnBxwAzbgB2RJAo2qBMkq
A0awzXrN1wYwAFOaAYP+sAvh+LY1wMy2AAw57Qu84AtWMKZ5EAiTwA1D/Ql24AUP
43zAptn00N5t7A7Y0ALOMKC/AKvKgA/yMA/4kA+vDdv9UJJJCqrt0A4+UNFFIARC
IJciO6McsAGooK4vkAGUO8Iy8MwjwJQDYAAFIAAGEAIZkAq5gMaq4AcOYAG+MKDA
4Au+UAyrwAA8zd278Aev8AmoTGQcwd7ukNXnsONA4APJAAy50ArIcAvtoA/zMA/6
0N+wfQ8BHtHm0A7VcATQbAQIjosvgJx66go5IAu4sAsUQAIILgRBcAIZMKUDIAAQ
oMdMCQixMI62UAEPoAqwKwyqCQy8AOer0A/4cA/+/AALWfAJjMBL7jISagAGmRAP
bMwOWO0Oy+0L4CipubDaW70P/t0P+1AO54AO5VAO5qAN12AP0DDlRNC5K8oBNOAB
WXAHV4ALoCALYU7lRgAEMZABGXC4x4ACBqABgaABFYAKthABFnAL5LCwcSoMfSAB
D1AF3bDn6UAJo6AJtsk9loYGmcDGOt4O8OAMLaAL4PgLOYoM8aAPXF3p/oDp6HAO
T+4MyFANoF4CuY3gpL4BG3ABW8AEWUAJEBACI3AC18gDPBAEMnCRlBkBEaABf/AH
HiABfiABHEAN6YAO6TANBRoBD2AB24AF6fAPk0AJpADtvqa7Q5EJWD3y6ZD+DtfQ
Ajrg6MigDKCKDMtgDvhQ6ZZOu+hQ85qLDLyAC75QCyWQAiZswkCAAh5wBQ7gAAmw
BVuwAf95AAJAAARwAAQAARYQC4TABxqg60LsAXogAalADfSQDu7gDr2wCsheAf6w
DYIg3pRACR4Pe6PYMpmw4zvODu2A7kEgs+teDdYw4HwvD0ruD+TQDtJA27+gC+LL
rGf8Ainwx2IuBCpAAhAQrVdwBUB5C9TgC34gCMuwDMzAw/SpAXrwB03KAQSvCskg
D+tAD/NADatA8BEQDf2wDeI9Cs/OCJh9PgCUCeZgDjV/DupQ90FABCq/9wMeD/Qw
4OfgDvdg6dKA7un+qpK0EJW5jKAvEAKeGwQ8IARDgAIY8AAXgAWEQAutYAs4ugp7
ELq74AfqGgF8sAcdIMR8EAGwQA33MA/ygA/oEAsdwAdZEAuxL94AEUiQIUZjypw5
YwbhQoYLw5jBZI4cOorozJUjguQXMmTVzLWLF08evXjuzl0019FcLlWyZLnqlcuW
rVmzeOUYkUKIkCBAgKh4cUHCn1WtUt0ChsyPBkJ+YOWKJWGPhj6rVPF5MAEYv3vz
usLiI+jPHnu7sGBZVYxbHS8N3SKc4jCTuWnk7JYjp+4IEo7UlFkDKS8ePZLs2rWr
dgsXLletVKVydetWLsq9cPWiRWJEECFDgAz+aQHjQgQOs1Kp6gVrDx89f3LdihVB
TwRav3hpeODggbp7vfMl+yOI0B9CWBhk2bUKFCMxCA++dcsl07Rp46qPEyfNWbO+
1aodDkmYHbt47codq+VKPS1asmzxImaLlq1bs2jxehGCR5CeQFqcuEADVFKpYZZY
Wovgj1j+CGQPLB6I4JWocnNgmH3uyYeeaGIRRKwsLsAikEBWGWSR5hh6DrowvsiE
mmiimYYaaaRRxhlnfOnIO8BEEiweww5Dhj3FJGNlFmLw0OIW+uybBRYLQkChsyF4
gCACK1MhsAM9NGBtjz/Gyk2DCrB6gANg8snnnn3ESQaYL4eTAAtBJqH+xBA5xjiD
DOegcwgiX2aMJplkpKEFCR2ECWYja3Ykqbx2rDGnml90yWWxWmjRZQcttMBjJltk
YUUVYrTYAEogRjBhhtkiQAWVGyyIQAI9Zv1DAxAmkECCByRwABVeePHtnkCLiSUW
Xgi5QERKKNGkIITU4JOhhxABRppgbAFGGGFwMTQddMihBhlq2mHHnfKs8a4aZWSB
hRhcKv3FF2KyeIUYe+sdNQtXGMvggQdCEOEFK1Gp4VUJIthjNj7EVGUVP7JCRZVZ
bLnHH3/UUUZbYXqxpRhUIqBzlGZPjFZaLhCx5RVbkEnGL2N4SMUdd+iRx51qxiX3
0ZuRwUUWQbT+yEILeze9oo9Nt8jiCi22oMEVWXBB5QoaIBhAhAz6uIFgGnadzQ8v
I7BBlVYkmAAVVl4R5kJhi0H0ll5kjGaCQCghxRRFxlAoxWjJCAOTV4KJRhllqIHG
mhlueOecmeXBh55qIDXHHMF5Vq8VGrLIghheVHlVaQtUqYGCLVZRz5VVrtigA6oz
wIHgGraWgAGE99iDgbAffqBIYjDc5x+2gwFeGn74mWeYP0j5ppQ6vkhIbz75xiSZ
F4sZpxgkrInBhnfGo2ceefTRp5zHveOol1RumNeCV3IJhhctrsAji2KA1yULpNVD
ZYsJcA1AgAE2oEEAKeAAhFWBdgzoACr+eFWBV6TFH2gahzCGEQxgTAMf8CAFKUoB
Dg6WQhFhiJbzwtA3aAgjcDTSgRFmAIFznCMd7pDHPPABPnMIQxnQqAZHaOGKpFlg
U5y6Ax6C+A/CbMMJF5jADXLwoaxAqAACEMDrAjgBBtCudrrRwB8eUCBbrCMf/lhH
McRYDHfsgxuTmMQoNthBRTCvDAdJkfMQAj1hJEMZLyLHDWDgDAHcgCQ0m4cM8cEP
dCQFGYOjBS5UwQELXOEKd+DCFkZ1JDzggQtZoMEGOHcDDmzAAbrhAAEEAIHXbQBX
VmRAKh1QAQ3ooQ+E4IY98qGOYoijN/xQBxpHoUYOgqMUJjrDGxv+IscVcQETdZSe
NCJIgBcUIAbZaMfMulePegySHtLgCDIsAw1bpGICV3gCB57RD3J2Iw2XdAYyaFAD
AtmAAxRKJQAOUEoczA4LuvIXKTuwB0lkYhTf2MY/0jQ8QoSsFBu0BzhMUQeSDROO
JjumMFykzHJA4AAGgIAMnEGz7gmyHvqoRzqKAYxgzCIprlgiHprRDH3wYx/6wMMW
jvEuVdDABjYAIA0csAAsWAEAAphAHyygpT1IoAKhogAEKECBCFghD6MgxS41yA1u
EGIQaBwEIbS6C27YDQp8IiZEhFGMFylDGuWghf8KAAFzyOMd3othNcGnD3ykIxmv
wAVH+hD+tGtsJx71oEdMj9EeywVwAxugwAOEIoH+BWABDWDAAhawKz4kFlcSqEIV
nDqJUmRwl6UYRCCMqgrUCOMVrCAEI+IC1oaAIQyZkN4dpTENcSCjAAbQxTsIIw/e
zqOa+JjhS10qjIkBI2lXEMQtdtCMcVjyCavQRQ5cYQMIHDapEFhAKvsHgAUAgLs0
sECuyGYl4zTgArzYRiDUeNBvUGIBf1AGLZLxj3X4jiBiQMNCFBKtL0gnGdSLxozq
AoEXaMMdup1mV+YKvn3sw6XmKOkqLFABR25hC09wggIQwIVKbqEGnUTsA6b2WFFK
FgAOoAANOMBU8UZgAg/IQjTIsQ7+dQBiEKX4xjew4IA9gAMe6qCxOsSxli88R08l
MwNEpBfgacxWHTgoABG0UTNAypXB+nCwg/uxD3XYgrQ3uEKGIfC0V3TgCV3owgVc
kckJLNWUCziAABYQABQflgaqsEXEYAGLWVBAFd0jRzqsQQs+UMIbQsECKeyx6H9U
LxR2gIIc+fQQTERjotURRzpkEAJo+CiQ+PCtg1vq0uHxY8vk3Mc80kEOXlTAAy+w
QStacYwsZFhsnUzxUjs5gAKQbcVLpcEsVPGKpNxVxZauJj1quAo+HExE4LCHxd4R
DW4oAgxl0JPeDoKnhvTt0tYhxzm0gQJkdKUegbRyqfvBjxn+mpqcpZ6rNUqAg1Qc
42Y3oAU0ckGDFKOC34gdAAT+YAEVA9s0sxDXL1rRZ1VMo5q+pcc0ZhGnQKARHP3w
x6JDoQgxHCTJJTsDpSdKDnGIwxyCRoEz8HEYfORjhgxedzaeUQQjFAEJ2qgHOenq
lXjwQAexmBxlblGMTLquBjiAwCg5UAEAJlWTqcAWz2iRCxukAhiB9N483iGMCuyh
4mn8xqLDUQo5NAcNcnQetzNRDRiBmxzwyAYKjtEPZ7DgCO7ghz+G1496IAEGL9DB
NbLhDB4IIR7rpqs+6BEEZyRjFi38BS1ugYxUrNOmNViFAUb5MQ5kkgITuPMtfiH6
Y5j+rxW16R5h3AEMVFxgWbvcZTi6IQo5TGG1+5U0QvDUImq4vR3v0MYJoOEPfACB
BSxoRjxMfQ0DGIAV5/AHOfuhjyIYfvr10EY2iGANewjjFu4ox2Woocia0gAVORjA
KFMxJsNCoPMSSyQuaNEKVLiiBqoIBjI25m8LYGGXlNglRAAFU2COYMq91pIOaqCG
6jCHFnqHZjiBdtiHeAiCFjABFECBHoiBProHclKwfSCnZ3iGnFsHITACI0ACZzgH
aRCGb/mFX7CFVRA2DniBFRgBACAlG+iAPrABHGizALoBWagUWdihxvA3VHCMDaiB
V5CAQRiFSUCEQDgFScAEhkr+CIU4soVwHtfCBLari3Joh3OQByIQvh84Ph9gARQY
gQwwgGlANVNLtXuQh97AhsN7hh6gOSGYgWgQh+pAh3Mgh1moAVh4hRgQgRYAglGq
AXfqgEZcqhRLhadhj/mTtVa4AQDiAK+bBFIIBUqQhECoggZogDwoQJBziL6hjrqo
hnNgh3v4gRDIgBJwAR8IAha4wBDYgOnTMlTzCnq4h3jAhnVAApozAh54gXQYh2Sc
CHoYh5tAARdogSEIgheggMoToAqIlQjogBp4mpd4hVd4CVeovAmoAkkwx0kAhUmQ
hMyyAgVogDYyAzLIGz6Ji4dYuybDC1bEhyMIARIoARP+aAEfMD4TMABkYDcGczCu
uAd94LtncAYloLkkIAFfQEZhwA7eCIakGwASOIEZEIIceIyaKqXPkwAP0ABAiIVw
vAHIQCmviYAqyIOrMoRJCIQ8sIIGAIB3/AIzCAO+Caa9gYg+ZMDDuIdm6McRQAET
6A8R8ABQo6bEy4eXCqR9qIceaAYkGEYjOEZ1kIZiUIZpSIdcMIABIMsMWCqQJC3Q
EaClqq4N8AA/KJabsoEbcIVYCISxgEkBNAREyAPNagAFAAE7mAKenAIQEqZJy4SS
q4tzgIffc4YRIAF/FAFaDIIQoIXG6Z4Y+rSumId9GDysHEYeyIF7IIcIUoZyKAb+
fwyBnIgBieGFmOiFYKgFAlnLw3InDvCDP/CD3eSDP5iV2cCsrBIRzVIAAMgDO9hJ
LviCnhQmSbPH0rSL6EwHaCiBfiyBHzAHawCCDFAcmZGmd4gh3mKcZnCGZ8hKHtAF
ZIwGbVGHGABIETABEUAGXpgFt3lBYPiFGljETNoADugkDrgBdxqLLfHPm3onB6AB
+iCGBtCDvxwERmCeOfrJCZXQPDGDTLAGcigG6iCHagDDaTgGaDgHe9ieGagBfBiP
eGBFd2AHepAZesCHbAiCaZg5JChGHUBGttEWGUgCIhBIIGhGW/AFCgIGkiKQ/Qwg
DviwubyBAN0AG6CUX4j+Bf+sqVWoBQaVgMcixQh1izcSoQs1h/Wsjmro0HB7B5lx
Icf5PZlhhxZixWhqUXdIAhnwB2wogjw8AXWIIG2hBRREAiIwAhuJgRfIAV3Qv23B
kgC9KRrAkg9r0pUkGFyAhVgYkKwJlSoKhlUozuM8ETOIIwrtk7m4hUGpjrq4C3IZ
jwNzBzilBzc1hz90oWaYgV6YwJozgiBAgVwYhwnyBR0ogqvESmgwAgzYSKSUgWPw
spDMmgE5n7lMBWdFBRuIBVhYjMeYhT/IAlXgBV8ozgawA25LiGFyCzJIwFd4kRmR
BnGwi8NIhzilB3bYnh9x03Moh3OoBiCIgXTojST+EAIeUAERSAFqkCBeCIIiSIKr
TKcTKIIX0AwUYAEgIAIdiBiWFMeCuYH7s0aCUYXRIz+HeYXKm4VVyMlE6K8KPcAR
yoRfqIVzbTJTXdEXZVMWHY93gAd0OYd2aIERAAY5vAdnEIGfHQGA0QVgkAGItbnr
OYYRmAEjkIETMIGHNcEj2IHTEJtV4AAbqAFUWAVAaJUacBpbCAbFSIWIETZ/4wUH
aACSBSFTRIjXooVemB6zKs1yELRcWJzteYe8tYd2cAYfmIFneAcfEAEcSJx0SId3
0IEQIEv/gRIXkEasdIZ00IERoFwZAFSeEAJALYJUsIqIiQW4hAVX0IEe6AH+IsDD
IlACZ4CFAXGFtPQ3VmgARvCCtd0vFOk2MsCEVAiGwQkwZRgHcrAGZygCEmgHfHgH
OdwebTgCFvhZEzgCHwiBFxiHFjJcw6UFAxClnxqADEgBHvC5s4oByoXMyJSB0r3T
JECCJtWBYziCIyiCIfAMFZgBGCABDHiBFyiCI5iFVzAKqqWBGwAF5IxHUFWRvkGF
XjChbrghZ0AC80QCEngHf/hFbGiGYmwBC4zPFEABXfhdkysHdBCHZBQHYfCFkEUF
HMCADMiBblAHddAF65yBGICBGIgBHlWCZlACJUgCJXiGHXaGHNABZ4CGaxiGzgXQ
JCiCV3CFSXwMGjj+BNlFCE8Fuf5CBD8YBmEwhiNIgiAgAvLcCyKwkWZIghPkCSCQ
AVuEzyN4B+uwDuoYh0DRFl/YVl4QBhZOB3Xoqzs8AvLUhr5qBiKQAR2Agb+7XxkO
5GYQwWdoBmqIhV3ogFWABV0wAl3gBcXABWGrgRJpizPILzCADm4bIUSwARmIzxAo
ARS0ESROAlXGyuojAiBAw/gcARaAhnEAFGmIhj0FBjn+FTqehmpwBiBAgRMggft9
gQwgS14rgAMogAIggAMgAAJwAAiYgFXYju2Yhm7YhSsWm1kwgiMIWz6jCdRqhJ1k
2zPoL09oARSAgVnwBRwggQYGVoNFAiS+UyL+KOMWgE8ZKBxclh7pYZsi7YVfueJi
gAYkCAIf0IH6ENJhkIUcIAEDaOYDoGgIIDAaeIVhGIZyMIddAAYkEIZt4AVYQIdg
GDY8BAQ+YI1VsAVWGITlYYja3RNpUQNEyIFf8QVg6AZbgAHyzEqaM9g77Vfv1ajD
XbUX0RYdJeFe5oVhKIZnOIJr8NBxwAX7/IVgSIZb0M8mdYUe+Iwk2AWRVoYW2oVl
KAJk4OhVGAZqUIU+0AEi6E2V1gNYoIVCsIOGCqEofgRcGNhhAIYI0oE/JeMT5Fce
6AEdgAbeuAdvETIaSQaNCYYhZepreAZd8N268IXL6AXJGL3pwquq1gX+IBACZ9iG
XeiGNj0HbT4CbWghX1gFcXgFPpAFJPiSP+CDDvgDGsgDYDrnhECEV2CbIa0jW67g
YiQC09WBXICGVuyNdXAHwy0HcQgcjZmgYWDqZuiBG5Ax6lAG+nCbXtjs6WoMWKiF
WiCEIzCCVeCGXcg0c9HmIrgGvKiGPsgF44EFbcgile4ADdCAPGgE/CqZFPHkR0Cb
Ky7SAFOHczgCITCAsY4m7yncd6heEH7j9USUCQKeCTqCeYvu7BCHzK5kpPAFo8ja
VqBWXHCGIMCAWOCGbVhrcmiH9YZvcfAOWFAFbjiEWNCGL9GD/cbG3f6qCQXXtxgD
NMCEHRijXBD+o2sIRnRQghAohnWQcnawBimXcnqwcnEYoy0fI2gYguhdB3SYhmK4
hmtgBV3QBR4g5kHegR0YZO9VgRQYAAMYhm3mhm64Bm3GBSXAhjK/Bl1QhWVYBllI
Ag7AgRXbnwcAgQKUaZDLBEMAhUgHhVAIBW+odG/4hkK49Erf9BwLhRzzBkun9FEf
dWb4AA34BkoPdW8AhU8ABUP4AFz4gEOg9UNghkM4dRAAAQ0oBFEYBV8XhVIQhUhn
BlEPhVYXBVP4hEMwhEEwhFMYhDzIg1MoxXMugzigAzjQdjjAdjmIgzmYAzrIdm0H
920XdziYAzigg3A/9zjYdnWHAzs4d3X+Z3dxF3d5t3d3t3c6YIQ6GPdx1/Z1D/iB
f3dx93c68Hc5uAPaDdcAnwIvGIMxEIOJl/gx8IIvwPgpgAKMFwOOv3iM/4KJD3kx
GAON73iOB3mQ94KPD/mUl3gokAKMj3iSp/iJP/kv0PgpCPmIb3ma73ibFwOIX9uQ
O+cs/MkyyC/9mjSi3xuHeAvD1LbnUANoKRmjb/gott39avRo2XqGWC2lt3YCbp6Z
nqOuT/oD7FKxx/q1L5mvP4MxIAM4wj1THHqwP/qj1xs9UYiu722qXwirPwO/7+0A
R/vBRzKvjwvbI4Mp0BPGt708WXzFjwthkgLH1/szcPzVenzMN4P+zN98wyd7Ly38
wRcmNWiC00+AKEgABGgC1nf9JkgAKqACBECAKKD9BJiC20eA1W8CJvD902eC1d99
JqCCBJCC1mcCBCj+1pcCtld7SftU0Of6Oar8MpACKYiC65+CKJgC7bc97sf87T+D
68/+6zd/xq987j//yu9+28P+xQd86bdd3ctr1oqWqX+WwF8IwRd8/dd/vwcINWfO
CBxosKBBMwYXMhxY5sxDgxEbUlw4sSLGhQrPKNyYkSIZjgw9QjwTMqHGjypXYrxI
ceLDiDItsjQY0mXFmBnHMMRZ82XGi2Rg2vxpEE1DnGFy4iQJ1OjHMhN5LkTKMSKY
olBRLgV+6TOpzjNUt6qUKTWnQ4sn0e7smdHpwrUNpxgcS3ag3bsM865Us6WlW4l6
667cQpXv4K1j8p5NvFcv4oaRBf/8StihZceKodKNqhlzUJoMO9d0iTPzStShJesl
+vl146eDVW+9SFp0zdurTZelnbYyYOCUfYNVyTdmWOGBKwYEADs=
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=icon-authorchoice.gif
Content-Type: image/gif; name=icon-authorchoice.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/icon-authorchoice.gif
Content-Transfer-Encoding: Base64
R0lGODlhcwATAPfCALu7u4iIiEVFRe7u7gEBARISEqqqqmdnZyMjI8zMzDQ0NFZW
Vt3d3Xh4eP///5mZmb6+vvz8/Pz8+v39/f///fPz82oEAv7//2cDBf39/2kCA729
vfv9/GkCBWsDBGcDA//+/7+/v/T09Pj8+7i6uf38+vz//7y8vP3//r6+vPz8/vLy
8vz9+P//+2cDAWoDBmYCAvj4+GYEA/v7+/r7/WgEBv/9/vz7+fz6+/37/KtxcHsl
JrSEhNi/wnccG6FvcHETE87OzsCWl97c3f7+///6/ru/vrmLjbKysG8QDv7//dm/
vqlucPHz8ry9v7i4utGzsf38+JpYWb2NjWoEAII0NJBERMqoqbi3s8qjpNze2//9
/Pj292oBBbOzsenV1r6NkMKYmWkDAWcBAMC+v7i6t+TW03oiIfHy9P76+2gEAmQE
BvLy9ODMy2YEBbN9e8rKyr6+wLe3t729v8Wfno9IRmsFA9GxsqNjZI5EQby8umkB
AvHn5sK+v2YAAOvh4Pv9+rm3unwoJoU0M8u3uMDAwLmLi/b29sbGxv/+/ZVRUNO/
wf7+/p5dYYo8PPz+/cKenraFiL+9wPbw8J5cXb2+wMGZmcC/vb7Av8elpOfT0oQ0
NXshILW1tWsBAaBgYahsbmsDAtzCw3keHfv7+WkDANCxr/v8/rq6uoQ0M2sDAOra
2u3h48vLy72RkPnz9/n7+Ovh4r6Vk2cFBv79+8akpb25uJtdXmUGAry8vpZUVvr5
9/7+/P37/vj9955eXp1dW2gAA////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAEAAMIALAAAAABzABMAAAj/ABHFqECwgggRK2IkcMDQ
gbCHECNKnEixosWLGDNqtFhIhYQJOWgAkhDhUJMNFGg53MiypcuXMOP4ilCERoQZ
sLagGcDiBBEQMIMKHfpSUgYcM0pEWBVJUaofk9jAmUC0qtWrD1OMiMLhkRAplrJ8
glFFyxBUWNOqbelExY1et+7sWmLGBB0YhFbIWcu3L0U9EyLwkMVKUJdgU2yMgmIi
kN/Hfo1IiLWjRR08XN4MuuBIEwhbFAEUGABxwIECBAQkePgAAYECASaKJl3RwGoC
LQO4RmBAGAABGHGzzMXBkC4QQCBd+AUsgxUHKEhQPHDgAUQFAUjrFsagwGoGCqxH
/6QunqIAAMKEa2ywgIHvAgx+pwVQolEeCpTs+ODEx5UohlhMNIACAz5kgAIRZZcA
ArQx4F5pBCIoTAINPNRAAg8UgCABDRBAoDAGuHYAaQ0cQIABBNAGYgIAKCAAAQcY
KCJpwJn2mnULwqiiMCSwAAouX2SQyRWv9HDEBRRQ0MlEAcS2wGpNUtRAAQsE8CBE
UT7pG3DCnAdebAQ4GVsBAAxQZZcNDGAAlxEBQEACAyCwGplmgilMAAuoiaCcwhwQ
G0RloLCIH0mA0YYpOoRhAwWMXODFRAg0gGeMUVKk5pS9QRTppFs+dF6X6AnXpHyd
fkpqm1yeR6p8uH36kGgCCP/gYkRPREBKLZuMcQYTfyiRSAsO8IKERC02qdsALSZo
wAN/gshmsU0ySOqnn4oawKrAuZoiRAZcmyoA2KYH6kPxKQAuAKtBdIIEOeDAwUcT
3CDBKRGMkAYZEi2QqTCSCoOddqN115tpFT6kL0SSAsBgAmSOa60wdJ7pKnvuiQbu
txCXeSZueA7AcHfo+RlRCm54MIsqVHzwggsdlLKHB2pUElF3ES0ojI2ppXvgayOS
W0DNCAizQGqfdsjAwyHqOO5DAaDGW6fjJt2zcCYWYF3SAuzYhwsy1KABBmJ0EMoa
GrzwgQyYQKa2WnNY4PbXH1iAQQ2eYNCBB5esrbdVrUAVEAIEgAcOwQYhEB7E3ogn
rvjiFwUEADs=
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=icon-html.gif
Content-Type: image/gif; name=icon-html.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/icon-html.gif
Content-Transfer-Encoding: Base64
R0lGODlhEQARAPe/AP+WI9vw/fr//3qXwsfl+v7//+Li69Dx//////z//4WUsuHj
7d3t/XmZxYKfxPv+/8bz/4PLTuTKsM/2/8jv/+D1//biwsfr/8z1/93f6c3ru5Wl
wNPw/WK4T4bMMNjd6tPp/Juyzejs9eTDrDCT5zaM4L7grNfy/3Bzhfj//6rE5+fQ
zVOb2IifwoqkxlaV1ub6/6DBy9/g6F2y+cDr/+Pcu+/5//vkvKCrwOe+q8HNzP/m
vHTC/NXe78Pc92KxK7Dg/unr4ofP/oOz4uDp95TM+vT9/cLZ2NHe887q/POdW+TK
s9n1/8LSvOPm6m/AZvfy8KrHzW2wdvL//43Fd9fbwZnA6Pjgu5vVhbfVu8XI14LG
h1edxoOQq73T7r7f7N3BscPL4Nzt/fH//97g6ub+//3//8jt/8nt/6PD7eTArPXm
wdrywOf//937/2q2S+yiZsDi+uno8a/E5cTq/+Xz97rjpFuc1keZ567C4U+0/N/g
6+7fuej//57P89f7/264t7DS4obE7aiuv0mvIYvD8ZzRzOPk7IaewjyK37Pb+ZOi
vM7y/7rH4KLZ/X6xW97y/oifw4KexpLK+r3o/6bP5uH3/nu7nvCmaYOex83m72+0
peL0/3aumN2zppW65eTFsI+euYmWseTn7Mrq/3257rrU8Lze93G+9FW2m+D06efC
rnycxvf5/IiVscvm+uD00vn4+3KwPaW92pXPvtXu/uX//5upwTuiu/n9/2Kx9523
1a/I5X+6YvXgv////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAEAAL8ALAAAAAARABEAAAj/AH/9elDATIoxME5c8CJH
oEMLvq7suLGGT40qOko1QuLwF4CPIEHCmZQnjQ+HIVNiQqMizJxDAlOGVOLm1ach
VmT8krAEDKgRalbl8LRiSoBTfgoNcrhAgNNfAaIGIEBAkSMcTAUkQEDE1JcsTUTU
igPklkMDrQoEOaIKlok3dxgkobThbK5YMTSwsUNlE64onOgsOltgVAlUWDz00pXq
kZgDoRzuQeAEzwxaPy7x6CALxAFRDskkgPJCTxFDhLYA6gSJkSuHGWwY2UVCCKkI
TxLxYkJBgcMPlirUCcFCkBQuszicodHFYY82ZWz10VQpEIE/EzBA8C1QSwsXiBxI
C4qUidWA8w1Q/AoIADs=
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=icon-pdf-sm.gif
Content-Type: image/gif; name=icon-pdf-sm.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/icon-pdf-sm.gif
Content-Transfer-Encoding: Base64
R0lGODlhEQARANUjAOR8gd3Q0uCsr+lARuKUmN+4u/JVW3t8fJ2DhPDw8N7ExuVw
dbEVG+FES9s+RDc3N1NGR4UPFOsoLzsHCc8YH+dYXqeNj3YOElgKDXI+QG9iY+OI
jOZkaehMUqWlpm5ub+0cJMDAwNzd3v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAEAACMALAAAAAARABEAAAaGwNEoESoajyGhMnTwOJ/O
QwQhBFmvWFDHw6AgEtnwFnOZhMLZjmj9CRkMDUdn3pEMOou1qC0MefQiAAKAe0kj
foAcg4B8h396ioSNiJAEkoaUIgFzAYyYj4EEBR0KepOPARUFABwDIAMcp5ocgnoK
Gx0anwR4hKaYFne+v30QGR/IycoPIUEAOw==
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=access_full.gif
Content-Type: image/gif; name=access_full.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/access_full.gif
Content-Transfer-Encoding: Base64
R0lGODlhDwASAPcAAP7+/ixUK1+pUl6nU33DdEqfOzmRKnjCanu0dWCrU0ecOGSr
Vo/BkMiTQafMt1ylUF2mUYHDej6XL4zGjsiUQIvGjIN0Yz6YMNTd4XCtbFajSPXY
VUOZM/XZTfbbTrbVzlaiSJPAl7fX0KnOu4zGjorAi0ydPYnBh3bCb4zCi0WWNsWd
VOnBXo/HlM/Y2obFhJ3KrFqmTESPOWeqUXXDZbHSyEidOZ3JpmCnS2yvV8+ENdHa
3PXcU6OYeuDIuePm6OXKtMKeV3LBXvDRft/n65/Iq0abN9/r74XAe/bgaoC4b/jo
mt6nV/LSOE2fPZrGo8emYFmkTUZfSfnphvbfX7rY0lmST6zQv12oT/bZRo/GlHGI
dHrEcHWxaonAhuzJb8iRPZyZjdueSvfic/jmoUmeOvTdiX/DeGerX4LEfJfEneHs
8FhlXk+gPk6gPqDMr3jDaWKsVYDDecN+OafMt0ugPLunfbTUzEWaNW2tZVejSkuc
O2GrVJLImXjDa0CWMPvzyZnFoYnGiIG+e4/Gk/bimV2oUGGrVD+KMFynTVqkTnu1
ZsinX+Pt8YfGhl6oVM7X2YTEgNqxV4KIhceZS43HkozCjcKAPpXInt3CtNLb3ffd
W/jmfmCqUvDUgK/RxIahgnOzXlulT4/BkHu1dF6oUNTc4M+FQdSzX9Xe4t7q7mGo
VZHBkoa2iFmlR4C/eICEg25fSPDbw4LFfbqgZ/LZXvnuqZa9nezHfqvRwLmHRODs
76LMspPDmIO8dfbaVYW/gWCoUXvEb7bLxfbigD2VLc6tZTmSKvbWR3KwbpGVjo7A
jvvwo+7u7kqePKSahprGoz+WLqPKsQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAPABIAAAj/AAEIHEiwIBE0yeo4KeCs
jA0FRlRYEXirDakFcQ4l6BTMkBs8iATmQTAsFQZTmna4gPSjWQCBq+h0OSRAQCks
iWIU4PASwKMrN6qI+HCnxqdcvEz0HDACyZtAIVgtS0EIxp6ldHxBa7Rm1xFVJ+wE
iSUQgjQlmEZ5ATbo1bMvgCTJAvCgyKI+lSo4mhWGBTNPuJgAEQUtFAlBkSIQoGWL
05IhxMQoUpPjRZozXA70MJNkDJVfp6L0miGHgB9QUFDV8rBpg45MekbhEAZH2YpC
PLKAuTTHBwANJVzREMKITBNkFGDJkCIQhCUtLUgYm9KhwSQUf7YIbHVBQrRiFijp
CmJzzECGgujTBwQAOw==
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=openAccess.gif
Content-Type: image/gif; name=openAccess.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/openAccess.gif
Content-Transfer-Encoding: Base64
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
AQEAOw==
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=access_free.gif
Content-Type: image/gif; name=access_free.gif
Content-Location: http://pubs.acs.org/templates/jsp/_style2/_achs/images/access_free.gif
Content-Transfer-Encoding: Base64
R0lGODlhDwASAPcAAP////bdjPjko/TYefXZffLPWvLQXfbekPTWcWeozvTXd/Xa
gfPVbffglPfgl/jjn/PSZWGhyvXbhfjmyPvsyNSAFPTWcPHPV8lrFPbWe/nnrvvs
v1aTw5nA3PLSZmiqz/bfkfHcyDBlqPPTavfjnvfim/bciPHNU6TM4vTYe/Xchvrr
yPnDI0WAvvHQZvXWmspzGPbVeYWgo/nosPjfnJ262vDJZJ3E3eyxGDNpq6jR5fLQ
XuSkUPO7G/XJUPHNVYuy0/LRYdd+FNGJUEB5udiWUNmFAipeovjDIUeDwW+y08ht
GPbejfnosmSkzF2bx/PTaWamzfLPWfbbiPDCMF+eyfTYfJnC3fjnrPLEMei3SWut
0fbcie7HW+u8K/rrvm2u0vTXdfS6DfDZyPbBIPbcji1hpfvosP7yzvLOafHSbPjm
qViWxIG11eeyHsxpAtvDXeO7mvvKMPHMUGWlzFybx3aMk1mXxfrtv0J9vPDNUfXb
h/vrueu2UPjkoZe82nWlzfvhkuadGPrru+CTFOysGNFwAv7pp+a3SF6dyPvhkWOj
y2qr0Pa9D1uZxvzVX/ruw/jlppKszvrswNV/AvnpstO3U6bP5GCfyQAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAPABIAAAjbAAEIHEiwoMAkOpSAYZSA
ToQbOQq2uLTlQ5RFmJ50EFEwD4oETiIkcsTmj5mCRK60qVLnDgdAQI4UrCEDDhUk
ZLxYsiOp4KEsgfgMqiQggxsaBNHIOfMFy4MGAZhMwbFi4CNFkzQIcBBggQICafoM
ZLGhSaQSByQMYODBCqGBjSCteWqCAAIIBRQYGSgGz9auYaAYOGGB0sAeM0ikXRvk
hx4XFQb6iOGHi10IUuYU0FJkIIVCZUAMGLHjgoEuMEIQfCHIxh4VKdQgWhLH4AQe
Qgy9wTBkjMHfBgMCADs=
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=aacr_160x160.jpg
Content-Type: image/jpeg; name=aacr_160x160.jpg
Content-Location: http://pubs.acs.org/sda/55224/aacr_160x160.jpg
Content-Transfer-Encoding: Base64
/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAPAAA/+4ADkFkb2Jl
AGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoKDBAMDAwMDAwQ
DA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AA
EQgAoACgAwERAAIRAQMRAf/EAKkAAAIDAQEBAQEAAAAAAAAAAAUGAgMEBwEACAkB
AAIDAQEAAAAAAAAAAAAAAAACAQMEBQYQAAICAQMCBAUCAwUHAwUAAAECAwQFABES
IQYxIhMHQVFhMhRxgUIjFZGhsVJiwdFyM0MkFuFjF4KyUyUmEQACAgEDAgMFBgQF
BQAAAAAAARECAyESBDFBUWEicYGhEwWRsdEyQhTwojMVwfFiciPhUoKSsv/aAAwD
AQACEQMRAD8A/KmgD7QB9oA9A0ASA0ATVdAFqoDoA0IhZvMd/gD4+HgNAG2tTZz0
HhoJgPY/DSyBQF3G/l2HXc/46Bkg+MJWp9L00dfbx9RgNQx9vibcdJhZJAlRntMp
2JhQlR+rHYaFjdh1eqGvG49CVC1XX1PEErxP6jfppLcWxopyKoZq2E9OI860voj7
0K8+P1BXfpqi2C/c0LLXsGcPUpTjnWmjtJ9u6MG22/hcD4/rrJfG69UXK6t0M3cH
t/GwNmsu8T9Su3VT8tVWqzTg5C6MC4btiYXhEEIJ+nxGs+SzWp0N6SHODs3aHgQN
w3Qbaev1ByY7ZKi33P2//R8TctMu0s59KP8A9NNbI72lj4mrOEcfnwzFjuOvidaV
ce+E4/rqnjT7QB6NAEgNAE0C8hyG6/EDodtAEwvX5DQBfGm5+egApQoNKR00EpDV
WxdWjSN29IsFVTsXbxJ+SjxY/pqCxV7snh+5TcF8Y/jQhgiCR25QGkDStwEhHgqj
4/LfStS0n3Fd32Eu160d6WO5L61iNyjycvUBIO24b4jTOSVqPXY2cxWPdYUoyW1m
Cm08k4iDOCekQ28P11Pzdq1L8eOeh3LHd6+2FIwpOJYrbqrNE8LP6ZI6gunIHbRT
Lv6Ma9HVwx17f7p7bztaSbClYOPIFZyokCqePqFN+SKx8N9LkttcMXHL/jUujo4e
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
a13KPAy1qqidhO4aVHtLuTDSpI1rMfhfjOgUxr+LMZH9QlgRuD02B1ryYnbJS3as
/FFCejHlvdrDVLAzmNisSZ3J2sRZzFeZEWvGMSo9RYZA7M/5EihuqrxHTWFcCzWy
0baqyXj6vwG39ydX3G7QoZChRom6+BUZd7lqSGNbCy5iH0V4RCV1cV0VR968juen
TRbh5LJtxv8AT7PTr4dw3IHS9/4FaL1IorT/AP8ALHt+N2jjUmwMh+UJCBIdo/T/
AH5fDbrq1cS8zp/U3+7bBG5fAz9ve48Hb3ZbYqjSht5a1eWe5Jfqw2Kwrwx7V0jV
yxLq7u3IqNt+mnzcN5Mu6ziqrChtOe4K0IO9ye6fbOViuPXqW4beSymMytxSkQiW
WpAY7IQiUnzv5k3HX47az4eBko1LUVraq9707Eu6NFj3a7as5zH3lguJDT7ls56Q
OkXJq8oTjGoEh/m+Q9D5f9Wor9PuqNStcar7/s6E71PvJYT3V7LqjBXbsGROQwUm
XSCGFITHJFlXlcO7NIpDR+sRxHj89Rl4GV7knWL7fH9MfgCujB/8kdvR9mS4mvJk
IjZwaYpsQiRrRS4kkbyXSwlBkabgTyMfJdyOoPSz9lf5u57dL7p7x4dO3tI3KBZ7
27rx2d7srZenHNHWhr0YWWYKr71YUjfYKzDYlDt11p43Htjxur6y/ixbOWN2W948
VbpZmtDVs8r+cN+pM6oGjx8s0NiaA7OdnaWrGdhuPHzayY/p1k6uVpSP/KGk/sbH
dy+t7wYmZMtA9/KYSN8zey+Os0IYJZXhuSc/QmSSRQkikbhlYjqfl1S30+y2uK29
Cq5nt3DeYIfddLHZdalPlsnjc1j61issdSKGSvd9ZneNpXdkeLb1OMmwO69R16as
fAjK2q1tVtPWZX4+RG/QlhPcntSlY7NydhLpu9vUbWNu1Y4omRkmhsLHLG7SJuec
67qQNhv49NzLw8llkqoi7TXw8vIFZaFMHubgR6AMFr+X2dL203lj63H9TaQfzP8A
lfzB1+7/AE6l8K+uq/q7/d+I9b/cO2aaN+1e6u6cli8hicjl8LTpzvdEaVZZ19GN
BT2JeT1EiDnoOO3x36Ycf9SmOrratbt6dY16jN6HLfbnuHtrBZiTKZoWjYrxN/SZ
KsUU4htHos7xyywBvTHmUcvu2Pw11uZhvkrtrHnOmnh0YlbjB2n7hdq4z8cXnvWv
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
9IXTRNz4feGXK7VjTxfmLutpkP/Z
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=sciFinder-TOC.gif
Content-Type: image/gif; name=sciFinder-TOC.gif
Content-Location: http://pubs.acs.org/sda/3023/sciFinder-TOC.gif
Content-Transfer-Encoding: Base64
R0lGODlhtAAyAPcAANnr+OHu+tLn+Mvc6tzp9LW2tqipqgsIBsPHydbo+PH4/jpY
p////9TV15KcpMva5K9oqoSIitPm9uPs9GZmZdTn9vH2+pVorHZ4edLh7Oz0+8TV
45ymrUZirbDF40ZbqdLb49Xo99rk7JaXmJpdpVdXVUhosMbM0urs7UlIRm5aprNb
oneNxb7DxTk2NHKEvLzM2snU3vz9/87i8pap0VJqslhYptHn9vj7/ejy+01JncLS
3igmI66wstnn8dHd6au5xuPw+7a7wMpImu3u8Gx6nfP09Nzt+ePp7ePw+dzy/iU0
W/v8/s/n9u36//n8/9rs+bxSnsrW4Fdlru30/Pv//6KtuGV8u9Xl8dDh8Or0+/f7
/vD4+4Way/X8/sx6te/2/N/u+cfY5eHP5uPk5Y6Wms7f7fP5/ezx9aWz1tLk8fj8
/+ny/HdhqWllreTx+9/t+t3i5un0/d7l61Fml7nJ1sfa6eXy+/T4/lhytcrV6n6B
gyMgHWNrsdDk9Ofy+0VDQNPl89Lo97fE3/H9/zUyMNnu/NTn+LCBudvr+t7s9vn5
+eTu+NbG4ubw+nByc8zR1i9BcOb0/ntytLHAzPv9/N/u+rbH1NPk82RRoS8sKfn8
/T88OYqNj+Dx/fb5/fDz+jxQnfP6/9rc39zf7/j+/+H1//b3+N7o8IdVouPv9xIZ
KsHW7NTo99Hl9L/P3vf7/FNSUN3v/NXs+s/Y7BkXFOX5/+72/tzu+eDm8v/+/eno
893p99Tq+rG93U9OTExutPj5/ufw99Ts/F9iY1ROoBsmQtfq+NDl9X19fdXn+1xc
W/z9/bnG0uHv/Nrr/dHi89Xr/c9WoW5sa/39/vr9/fX6/ur4/uv2/eTx+tTq+WNi
YV9eXuzz/Gprbf3+/vv7/cnH5EFAPv39/cvf72xvcOA7kF1yoKvA39jr+9bj7pCQ
j9Dg8c/Pz56hoj8/PdPl9dfg50tMTezg7/Hg7TAvLeLE39XT6eDV6ODs+eJtqu3s
9ry9vdfp+M7Y4Oz1/iH5BAAAAAAALAAAAAC0ADIAAAj/AAUIHEiwoMGDCAfeuCGB
YcKHECNKnEixosWLAipo3Mixo8ePIFtVSCALijIJIUCqXMmypcuXMGPKZJmgps2b
OHPq3JngmCEPrJ4lCMGzqNGjSJMqXcq0aYJ+UKNKnUq1atUEADyh63DFTphjVsOK
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
KrirAL0SBQR1Faho28OCPX69mzMgADs=
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=hamilton-pipette.gif
Content-Type: image/gif; name=hamilton-pipette.gif
Content-Location: http://pubs.acs.org/sda/32264/hamilton-pipette.gif
Content-Transfer-Encoding: Base64
R0lGODlheABYAuYAAByLs9v0+7Pn+WZlaebp55G4yIitvE6s0La7t8nW2XWpvQ6X
yv7//+X2+kfG89nm6VbL9bjK0KarpgOr6paalsfLyHfV9xJrjy+n1Mju+4fa9hi2
80icupLF1oiNiQui2ia682PP9iqaxHdbhqza6nu0yEq65Aqy8xBZdQmy7zrD82bJ
7NLb3dzf3dvt8tTX1dHe4Ti35g56pnbK6BWy7Si16vP29leivYhvlQdZiZbf9yxs
kW2UrFjF7WS52GWpwmBAa7zDv4XL5BWs5Xy803quwI2SjaywrPb7+2zT9zG+84nT
7cTP05uNqqe4vZygndbb13vE3c/j6KOWseXv8Z3V6HyGhs3S0EjC7meyz9/j4Kmk
uJGWkrK1saLj+nd9eJKTjwCu76KmodPU0dvb2ezx8Pb798PGwuPj4ZeGn46AmSau
4ZzN3oOFgXDO8aOankx/nrKrwHzS8dDX23h2dpSIiD6dwfv7+rCsp7+/zGC/4uPf
3Do9OPDv7r26vgBHeiH5BAAAAAAALAAAAAB4AFgCAAf/gAyCg4SFhoeIgneLjI2O
jImRkpOUlZaWj5mai5ednp+ghpujmqGmp6gMo2asra6kkKmys6KZrmY2ubq4r7CP
tMCetri6xca7Nqy+o4V3wc+PrcfT1Mmti2bLjc/cqo7ExWV94uLjfeNl1cW92s7d
qdHGZfPn9fbo5OnqrLvKpIrvQjVCAi7Xn4M5tNSjcvAPAXv05klUZ0xZtkwBTQ2U
1/CPAQIgCTQMCRIiunMTKV77xSkjpoHgJHbcQXIkyZBU6pVDGRGdDX39Srl8uYhg
OHEd/zBBw7Qh06c3SfbJeQ8lvopIhA6VBFMXvT5JeaBp0aIhWS1on6KJGnWqOYlA
/3OZQZLVUTd3RI16FSeyI4oWZMoeJBOY7Fm1TNlKfRs3Gd1fh/BWavmpay56IA/u
QHHQCeGGUEKTuQKHMxwnWlpo4fxHLJoCBxWsdXIQhc9dj+2qGiSZECe8zijvFuV7
uLc7BGNOzXyQx0E4L140HBPdCeuGBgLDaa4FjfM/cJgqeH4Vd91YvAEW792Mt/D0
zRjRDbe87x/af1AwkX5wjP8dSeV3BRnf7UDWdn/swBSCChBARUpynfebb+wVt1tw
wKXnTnDHXYjcfJfxxdwfZLDGwxgNXTFGgUFUAGBrL+C3A2HXtYDGi06UdFuELHFo
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
NnowN3JgxAys2CMsZuGRdoxkESQwomEIbY+CCI0f5ZKXMw7SiVAopCEJ6MYlJFII
jJwJCRkYSfqdQnCEi8rpxkiak8FQSsYjlhOhKMVRrs+UpkxkHBuZRSC28oQGEAMs
KTipTEanln+85XYYRxde+pKAbzSlIuU4Qjoec36TBFssTefM0VyhOqjJE4LSWE1R
XhN6bpSDMFNJBB8QAX6QPOYNQLcvcQptUkrSZK9Qo5qUbZAFvXzn5bIpT2Fy856c
//uBMb/ZT9/tURj/ARB10iksNLaOgwlVaOWA2VBUphISPnikSvX5g32i0C1huyQf
M3qUjZYrNR0dl6dAKlLavbGhPFykhfA50W8GDn8XDag5B8pJcel0Li/oYE8XStJ5
ptKeKs1nJPfJVQXA1IhhpKlNb9pRtenyNFAI6VRn1tC2mrQ3WP1hUY+5r+bgI6kn
Eg0tVURQcZ31j0+Tw1pp1tBgAnWRjLRnSle61ZY6dl9H8MNdmWki7/WxV+Wqi13S
uDAS2E2w6rPAzESrAdLSTLSmNW1bDytUVWb1m45FoVAmG8bgCa+vfHpigTr1xLRq
ALSjLa1wgzvc4aL2bqn97f9q4YjYryg2q3MFHVelK1sE0LZEshGjOalTl05qRwvl
Qg3LXhBY4Zr2tKQ9bnJRpd7gCna5zG1tFOLK2Ma6dJLWPUZJJkjTmr5gLsJqDQHA
i862CeC3CGaveYkb3PamV8HshW98rwrR+p7QpdNVwGxFkoxfBCaTAuWugRA0LDL0
ZU6BleeCGWyB9hb3uKVtr4QRa0U9oBS6LO2qAZA6wWaGRqNxwSmJqWTiAPlWDhZA
8oIf7OAlq5fJyoVvc51bYa1yEcMtrat+9YfREPd1yFVCQwv6Ql7DLvm3TU7zmVtc
2hnT2LlYtfCVHbvPFIaEsjMNcZBHbNBiQeEoCVCug0X/i2Q2Gxq1hY6xog2NZDe3
Vg/1XKyV5zfd6Wavsng9UYr2XFbyOXE6KVayoRW9aNQi+tBoLrWj5VtPHF+Yuly9
gQK0p9+LlnPTLFLnOpFn4jF4tqGjPvShG93i4wI7yaImtJTfrAcfOPu1dqz0Y2nN
YUxe9pxxCbDSdsqwX8vT1Elu8bHbfOpiF5vY4j73cmnc2khDe843iPUDB5fpMQKo
NNJk4tJaVoVvE7vU5kZ3uAv97XQTW8LyZPZ8JT1pOrd0ugXIZCzD+mP/cnI7/1sZ
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
S8mVMumWfdmXQtmUdFmXYRAIADs=
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=portico.gif
Content-Type: image/gif; name=portico.gif
Content-Location: http://pubs.acs.org/sda/4205/portico.gif
Content-Transfer-Encoding: Base64
R0lGODlhMgARAPcAAOPgvOHeu+bjvujlv+bjvePgu+fkvunmweXivefkv+vowYKB
dsLApd/cueThvO3qw+ThvcXDqc/Nrrm3ncbEqOjlwO/sxevows/Nr4uKfNzZuHd2
btzZt5CPgnNza5CPf+Lfvbq5n56di+3qxOzowri2nc3LrcC+pbq4oKCejLu5n+Xi
vuPgveXiv83KrLa0nb+9pdTSs7+9pKKgjb+9oe7rxLq4n7a0nJuZhpqZhtPQsnZ1
a3p5cKqokubivXx7cI6NfoaEd3FwaHZ2bd7buezpw8jGqZybh+jkv+bjv3Z1bImI
fKOgjJ6ci56cit3buWxsZcrHqpybiZWUhMjGq2ZlYNHOr4iIeWRkX3Nya9vYuHd2
a8/Or7+8ocvJraWkkuflv8G+pMrIq9LPstHOsIiHea2sluHevsK/puXiwMC+o7+9
oHRzbHNzauPhvNbTtHh3buXivHh3bWxrZNrXt2lpY8LAp8PCp9bUtGpqZdrYt7y6
osbEqZeVhcTCqmpqY+rmwmFhXurmwdXSso6OfpiXhmVlYO/sxGNjX7SzmsjGqp6c
jODdut/curq5oayqlOnlwJ+ejLWzm6Sij+Ddu9HOssXDqGpqZLOxmpiWhNXStJeW
hIWEeJSSg5ybiMTCptvYt8TCqZ+di7Szm7m2nr68o8fEqOnmwODducjFq3d2bW5t
ZpWUgsC+pG5uZn18cYKBdMbDqYiHe6qok2xrZmdmYo6NgIWEd3t6cOHevGtqZKSi
jWppY8C9o5eWhcXDqnFwaZ6divDsxJmXhbu6osPApbq5orq5oMPAp/PwxmlpYsnH
q39+dIyLf768oZGQg2FhXXFwatjWtZmXh21sZb68oMbDqGloYq2smHRza7CumbKw
mYyLe9fUtKOijgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAyABEAAAj/AAEIHEiwoMGDCBMqXMiw
ocOHECNKnKiwwDJrXlwICBAAgZEIsRQhCOAAgwoKFAigCoFCBoNSLyg0YqADQAAD
VlqlYiDBZgIToX7xWVEgwABCss7gEoHEwLA+oOh8yDFgQA8sWoJ0ImLrxCJafr4A
aVFngoADKXhI4FDsVoNTwZZI4xApyMYBOEQIQ+HqQokNFQQCUrLtQSJdFQZBi5FA
QZgdggQ0aAGsiwJi0RoQ6EgJwh0hueIUuJDBSQK8u5JpEzJC1YwDHA9sWmChBDUL
RmrpcUAAzZCNBdJ4WFPjBysSHAMUOMBsmgKOBpxdYzHgyAIYZSwl4HXDAEckjzaM
/9hTpQknEysCELCzYXOAJGxoPGiTYkByo9lm2Q8g4JOhJ9V9gEEDAiQwxAyQxJbJ
AocckwcQHiRgEwEnwLERfzvQUFwGRdx3wAKFwHZTNcoAMIAnTChQlAGYyEGCAw4U
oUQPD4SwigWwvHJAAT5EwIN3/G3RywUTBKLJAAUgIAACamSRBAIAPNCBLxUMsAQ3
YCQHQQ5TjEFGB6IIMIAZiLCAwBxXQGAANpdwIFAAf0gipjdQ3NANA88QYcAkzUgQ
gxQZuAEACBEgw0hyBRAghg02uLAZAJXAoAEBbziiAQBUGFMTABrIgIFNAuAxigov
RAEqF6RMYIoPg1Lk6quwxgcq66y0MhQQADs=
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=COUNTER.gif
Content-Type: image/gif; name=COUNTER.gif
Content-Location: http://pubs.acs.org/sda/4205/COUNTER.gif
Content-Transfer-Encoding: Base64
R0lGODlhMgARAPcAAP///5OTk3h4eGxsbHl5eXV1dW9vb5KSknZ2dnFxcWhoaG5u
bpGRkYmJiXd3d3BwcGtra21tbXNzc4yMjGVlZXR0dGpqaouLi39/f19fX4CAgGNj
Y4aGhuzs7IODg5aWlnJycvX19WdnZ52dnTQ0NJeXl35+fmlpabS0tIKCgmJiYu3t
7X19fVlZWVdXV9TU1EhISIqKirm5uZqamu7u7k1NTefn5/Hx8ZmZmURERJSUlHt7
e9zc3Hx8fJubm4SEhKGhoYGBgcvLy1hYWL+/v1ZWVqSkpFpaWlxcXJiYmE5OTqmp
qTg4OHp6elRUVNHR0fT09I2NjTc3N8fHx0ZGRjAwMKamptra2tvb26+vrykpKays
rMzMzI+Pj15eXvr6+pWVlU9PT+Li4s7OzsnJybOzs729vfb29oWFhUFBQcXFxTU1
NVtbWy4uLi8vL56enisrK+rq6vn5+fj4+GBgYK2trUlJScLCwmZmZsbGxvDw8JCQ
kKKiot3d3T09PUJCQpycnFJSUktLS83NzfPz8/Ly8lFRUScnJ2RkZCUlJenp6Y6O
jujo6Dw8PCYmJuTk5NDQ0D8/P6Ojozo6OigoKKioqC0tLe/v76CgoFNTU6qqqrGx
sd7e3ry8vDAwLzk5OT4+PuPj42FhYfv7+4eHh5iYlzExMbCwsP39/bKysl9fYMjI
yKenp5SUlba2ttHR0CAgIFRUU/z8/pubmtfX1/f399/f30NDQ8/Pz+bm5oiIiEBA
QMrKyr6+vt7e32lpaH5+f/7+/qWlpeDg4Ds7O29vcCoqKp+fn+Xl5YCAgfz8/HFx
cLu7u9bW1iMjIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAyABEAAAj/ACd8CMCA4BtABQ8EIDji
TcGFBIGUULjwAA4gDxdK0gGRAZAkFAN8aJCCQIIHBgwA0pFAgoEEMD/4iBChAAID
ESpxGGAAQQULDawoGEA0Qh0BEIgqMNIgKU8BElhQ8EBmSYYuDVQMkDHGhJcLF0xs
gSDi2I4kBICAUSFBUwMfVlCUQWFkhAe5KITNwFBJ7gcFCwoYiAMAABgNQYrcKYwM
EQYWYORscEGrS5QIWOKwKfDlQokQhQF0OKAjNJQSAvSEPpBBQZZgMfo80pCgGAAZ
HgCMWOBgAo0hNSD9QKOCCwAQFG5wiMFiyZwZGi4w4NRgUYoLCTqkarBCSIsTWDp5
/7rgK8WGVmdiMRnE5cQCDjSU3BrUA0MLMgB8tNATRMOaBSEUEQkHXajBRCTEpADB
JRhYsskVQxhAQxRrCAJDAl5k8cIkUswQygAUaLACFZMIgQABhkwBABcu0NAEASQA
WIQfGuhCxh8w7LLDBisQkIgMLygBwg0IuCFFFRC0YEYvbrSBgSIDIEFAB6BUscoD
INihxhUrQKCIBBIYI0IINZBAAAFzPGKDJgYcwQgRRozCRw7L3BDBIVVoQUEgZrji
iCMIxKGAExV0QAIleVhgQRq8SGLDCGIMAAEsokBBBRwFgBAaMxZkIkZhfcBARQKF
OKAFCYdQ4IQMRGhBSRCMiP8wBAIdSAFHHgMskMMYE8gwTC4PRODMBlDY0QYCJjxx
hAqCPOCCDafwgEMiYQywwh5wZLBEBUNsgYUUbmBiiwgbTPnHGkI8gEANT+wBDABQ
VCBBGxaEEAgTLHBwhyUkmEIAHR0oUAohMBiCxwtTkFDCHBrQcYEsqnxyhRoUQCCB
HC40wkMEOzjxhA+ZfCEHAU0wkUAIR6ThwQVTNJKDHybgQUMPvwCQTA0nMADAK7UQ
kSkbZ9ig4g8PEODFF83cccMRDdDxghVpjAFACh7k0MQZFNQwwQSEPPGCGRMYcEkM
VIiBSxEVZMADAMoggAEGSrBSGCROmIBGGEQUJoQSB1jNwEMWMGACQAwNhPEDKgu4
oFBohXzgQAgB2FEHAAUIsAEIdUzQQhRoZKDCLJssgAQpEyBxwhIoCMAGDgXEYEIG
D3yQwgFIJJCEBRuM0MQMOMywSAk7BFBABgmMUAAGFSygQFJJMDDAAycANsABH/Ck
AGAQGOGBCBGAYAAFHLxhgQEnPPDAFhKIcD0ifHCARwQPLACBAQSw4AACPkXRQOUC
9F9AAxMoAAH654AC6CAIDiCgA35wgAIksH8l6EH/BFCBA3gAAQ4ggAN6IIGAAAA7
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=crossref.gif
Content-Type: image/gif; name=crossref.gif
Content-Location: http://pubs.acs.org/sda/4205/crossref.gif
Content-Transfer-Encoding: Base64
R0lGODlhMgARAPcAAAZopbnU5qqqqg4ODrXS5FGVvxQUFBlyqzyJuIeHhwBhoDY2
Nm6mymOhx2KfxQprqFaYwk+Vv5a/2QprpoS10gBioQBkolKXwE2TvgBZm0qSvQxt
pw1rpgBbnBp1rBoaGiIiIv///wAAAAUFBfT09Pf39/Pz89ra2sTExNTU1Pv7++jo
6Ly8vPDw8Orq6vr8/cnJydHR0bm5ucHBwdLS0isrK/Hx8evr68vLy8zMzPz8/Pb2
9uXl5eTk5Pj4+L6+vpaWlvL3+u71+fr6+r+/v5iYmOPj48bGxjIyMsDAwObm5q7O
4tzc3KSkpPn7/ZzD2xBlo/7+/gBjosXFxc7Ozs/Pz+7u7u/v71iZwuHh4fb5/Pf6
/MfHx9Hj7nqtzs3NzdbW1sLCwqDF3L29vZubmwBengBfn8rKyunp6QNmo/n5+QBc
nQBmo9DQ0ABdnuDg4P3+/t/f37u7u9vp8gBen63N4ezz+Orr6+vx9v///rGxsRFt
qI6OjrfU5c/OzkePvFRUVCZ7sPX19cfd65uYl6WlpQ9tp+bl5dXPzLW1tZKSkhhz
qx51rHKqzOry99rp8oy31MTDw7m6utTb4Lu8vHquzprC2p7E23+y0Z/E3ABeoAZn
pOjx99nY1+jy9/P3+6rL4PT4+62trY251cPDw7W5uxJrp9DR0vD2+svg7Mvf7IKy
0X5+fludxECKuUSOu5+fn3h4eIa20xByruTv9cHa6AZiobe3t2ejyNnZ2XNwbZK9
2CgoKPLy8m1tbUZmetXl8GSewcrLy6TI3qfJ36fK3wJkoid7r9rZ2eHt9EiAoxRx
quzs7JycnApoo8jd66Ojo8Tb6lmbw1qbw/L3+wRmo/39/TOEtfr9/sjIyKnK309P
T9LOyyF5r3mszf7+/7q6ui0tLdzq8t7r84WFhYi31N7e3sXc6tfX13V1dYu31ZCQ
kPHw8BRyqhpyqnCpzKHG3QdqpRx2rR53rZqamufn53SqzXaqzPj7/e30+VaYwevy
9il7sPv7+rS0tLKysiH5BAAAAAAALAAAAAAyABEAAAj/AEMIHEgwhIp6OcgAKQTG
RZSCECNKnFiwxxdJNG6QcJGCSJUTQyiKHDmQBIocaga6UELlh5wmRWCxOMGjBEmI
TN7YjLgiCQmBLdDJqGLDB8EeRMytoETjzs0QVhaIGPAvYpwwAk3AGHNlojUUYEL4
4AJjxw1/Z3pBSxKihQB6cQQKmAokC0QeU0LoSDHDBMksRGzayMFHBC+pIHAYGGFA
hL8v4aamO1FwB4sQV8CteBrChIwWAsmIEMEYyDYRMlQMANFkAGkkRwqy2JEChQ7O
AoeM2Sxq9I8SzBrXQPLhA5oiImpAPHHIDzLcBSOx0zOVhYoQUhOUIBFbUfKC/biV
/5ok8MUWgUIGBrFTMB+qgdjwnCI0lQeKEqRcD2BsYp0IEATl0YkyzjwwjycOQFHO
BbZUIoQ+HGzCTx8hOPIHAApoEAIxBxgzyy+6kKPCECxsxAogCYCGQiy+7BTCPsFo
woY8G4wDgQKLuGHGEgi4sYEHUiigyhMZtENBBNR0Q8cFDOyCyEA6TGFERM1MKRAm
D1QgARyfvFCAAhNYIksAUqQRzQsIdPDOIApIwQAnIWCQwTHFhKCGHH4JFAMOBWUD
Qy4DNQKAFPDAEYQTBXSAhUDnVJDGMy+80kED38xRQBnLJONEJgdkYI9BM7wxEBoy
bBZCDD2koMRAtEyzBhsexI7TBRYZtCJQKIGYscEiFpRRiwQOPBEPHXVoIEYEa1wz
UAxh5BkCXz+0QYIwD6mHxR4TLCJOA1DgMtAcrhgyASNihLCEKWxwIA0+GFQDgDsE
EGQDDLcwcQMNibTBBRWCQPSIOt4MowUBkFA4UCoUeKHNeUKA4sUqwITQxSj3XKJF
QSScgMMZMVgRAglGDRQQADs=
------------RCIbvvOjaJ8uSTfvfHqKc9
Content-Disposition: inline; filename=scriptaculous.htm
Content-Type: text/html; charset=UTF-8; name=scriptaculous.htm
Content-Location: http://pubs.acs.org/templates/jsp/js/scriptaculous.js?load=effects,dragdrop
Content-Transfer-Encoding: 8bit
// script.aculo.us scriptaculous.js v1.8.1, Thu Jan 03 22:07:12 -0500 2008
// Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
// For details, see the script.aculo.us web site: http://script.aculo.us/
var Scriptaculous = {
Version: '1.8.1',
require: function(libraryName) {
// inserting via DOM fails in Safari 2.0, so brute force approach
document.write('